- 博客(134)
- 收藏
- 关注

转载 C++ STL学习之stack
栈一种先进先出。后进后出的容器适配器,图形如下,只能从栈顶入,栈顶出。功能介绍1.头文件 #include<stack>2.定义:stack<int >s,int类型stack<char>s,char类型的,stack<double>,double类型的,等等s.pop():从栈顶删除元素s.push():从栈顶添加元素s.size():计算栈元素个数s.top():返回栈顶元素s.empty():判断是否为空,true if the c
2021-04-27 19:43:49
191
1

转载 C++队列queue用法详解
queueC++队列用法详解一、定义queue是一种容器转换器模板,调用#include< queue>即可使用队列类。一、queue初始化queue<Type, Container> (<数据类型,容器类型>)初始化时必须要有数据类型,容器可省略,省略时则默认为deque 类型初始化示例1:queue<int>q1;queue<double>q2; queue<char>q3;//默认为用deque容器实现的queue;
2021-04-27 19:35:25
10395
1

转载 C++中的find函数用法
摘要: 1.find()查找第一次出现的目标字符串(全匹配) 2.find_first_of() 查找子串中的某个字符最先出现的位置(非全匹配) 3.find_last_of() 这个函数与find_first_of()功能差不多,只不过find_first_of()是从字符串的前面往后面搜索,而 find_last_of()是...
2021-04-26 20:15:15
25470
1

原创 双指针算法,位运算,离散化,区间合并
双指针算法例题:acwing799题(最长连续不重复子序列)给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数n。第二行包含n个整数(均在0~100000范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤100000输入样例:51 2 2 3 5输出样例:3#include <bits/stdc++.h>using namespace std;in
2021-02-19 20:16:24
339
2

原创 我的易错点1
strlen只能用于计算字符型数组的长度,而不能计算整型数组或字符串的长度。用字符型数组存储带空格的字符串只能用fgets(gets现已被淘汰)输入。fgets用法(即:fgets(数组名,数组大小,stdin))。fgets(和gets)不能计算字符串的长度。size只能用于计算字符串的长度和vector类型的长度...
2021-02-07 22:18:54
891
原创 Java 栈和队列的基本使用
如果队列已满,则抛出一个IIIegaISlabEepeplian异常。队列(Queue)是一种先进先出(FIFO)的数据结构,Java中定义了。属于同一个级别接口,它们都是继承于。
2023-09-12 23:01:34
412
原创 Cookie、Session和Token三者区别以及各自应用场景
综上所述,选择使用Cookie、Session还是Token取决于你的具体需求和安全要求。对于简单的状态存储和会话跟踪,通常使用Cookie和Session即可。对于需要更高级的安全性验证和授权控制,使用Token更为合适。具体选择哪种方法要根据你的项目需求、开发难度和安全性要求来决定。
2023-09-08 11:43:00
1946
原创 LeetCode 870. 优势洗牌
给定两个大小相等的数组 nums1 和 nums2,nums1 相对于 nums 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/advantage-shuffle。返回 nums1 的任意排列,使其相对于 nums2 的优势最大化。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2022-10-08 11:02:55
278
原创 ch09 反射
User类(被测类):package demo;public class User { static { System.out.println("加载User类信息"); //无论new了几个对象,静态代码块只加载一次 } private int id; private String name; public int age; public User() { System.out.println("User参数为空的构造方法"); } public User(
2022-05-08 16:55:30
377
原创 leetcode 5. 最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:“aba” 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"提示:1 <= s.length <= 1000s 仅由数字和英文字母组成思路:枚举中心点位置当回文子串长度为奇数时,以i为中心开始往两边扩散,直到s[l]!=s[r],此时所得即为以i为中心的最长回文子串当回文子串长度为偶数时,以i和i+1为中心开始往两边扩散,直到s
2022-04-22 17:28:37
1143
原创 leetcode 396. 旋转函数
给定一个长度为 n 的整数数组 nums 。假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组,我们定义 nums 的 旋转函数 F 为:F(k) = 0 * arrk[0] + 1 * arrk[1] + … + (n - 1) * arrk[n - 1]返回 F(0), F(1), …, F(n-1)中的最大值 。生成的测试用例让答案符合 32 位 整数。示例 1:输入: nums = [4,3,2,6]输出: 26解释:F(0) = (0 * 4) + (1 * 3)
2022-04-22 11:30:20
1006
原创 蓝桥杯 蚂蚁感冒
题目传送门: 蚂蚁感冒长 100 厘米的细长直杆子上有 n 只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是 1 厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有 1 只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。输入格式第一行输入一个整数 n, 表示蚂蚁的总数。接着的一行是 n 个用空格分开的整数 Xi, Xi 的绝对值表示蚂蚁离开杆子左边端点的距离。正值表示
2022-02-01 15:17:15
276
原创 蓝桥杯 分巧克力
题目传送门: 分巧克力儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输入格式第一行包
2022-01-28 19:44:28
145
原创 蓝桥杯 四平方和
题目传送门: 四平方和四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。比如:5=02+02+12+225=0^2+0^2+1^2+2^25=02+02+12+227=12+12+12+227=1^2+1^2+1^2+2^27=12+12+12+22对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4 个数排序:0≤a≤b≤c≤d0≤a≤b≤c≤d0≤a≤b≤c≤d并对所有的可能表示法按
2022-01-28 19:28:34
323
原创 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树
题目传送门: 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树题目描述伐木工人 Mirko 需要砍 M 米长的木材。对 Mirko 来说这是很简单的工作,因为他有一个漂亮的新伐木机,可以如野火一般砍伐森林。不过,Mirko 只被允许砍伐一排树。Mirko 的伐木机工作流程如下:Mirko 设置一个高度参数 H(米),伐木机升起一个巨大的锯片到高度 H,并锯掉所有树比 H 高的部分(当然,树木不高于 H 米的部分保持不变)。Mirko 就得到树木被锯下的部分。例如,如果一排树的
2022-01-25 17:59:08
1043
原创 机器人跳跃问题(字节校招真题)
机器人正在玩一个古老的基于 DOS 的游戏。游戏中有 N+1 座建筑——从 0 到 N 编号,从左到右排列。编号为 0 的建筑高度为 0 个单位,编号为 i 的建筑高度为 H(i) 个单位。起初,机器人在编号为 0 的建筑处。每一步,它跳到下一个(右边)建筑。假设机器人在第 k 个建筑,且它现在的能量值是 E,下一步它将跳到第 k+1 个建筑。如果 H(k+1)>E,那么机器人就失去 H(k+1)−E 的能量值,否则它将得到 E−H(k+1) 的能量值。游戏目标是到达第 N 个建筑,在这
2022-01-25 17:32:22
308
原创 飞行员兄弟
题目传送门: 飞行员兄弟“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有 16 个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个 4×4 的矩阵,您可以改变任何一个位置 [i,j] 上把手的状态。但是,这也会使得第 i 行和第 j 列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行包含四个把手的初始状态。符号 + 表示把手处于闭合状态,而符号 - 表示把手
2022-01-23 21:01:59
351
原创 蓝桥杯 翻硬币(贪心)
题目传送门: 翻硬币小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。输出格式一个整数,表
2022-01-23 16:56:19
193
原创 费解的开关
你玩过“拉灯”游戏吗?25 盏灯排成一个 5×5 的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再改变它正中间的灯后状态将变成:01
2022-01-22 21:35:32
2781
原创 蓝桥杯 K倍区间
题目传送门: K倍区间给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?输入格式第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 Ai。输出格式输出一个整数,代表 K 倍区间的数目。数据范围1≤N,K≤100000,1≤Ai≤100000输入样例:5 212345输出样例:6解析:见注释代码如下
2022-01-22 12:09:54
554
原创 蓝桥杯省赛 带分数
题目传送门: 带分数100 可以表示为带分数的形式:100=3+69258/714还可以表示为:100=82+3546/197注意特征:带分数中,数字 1∼9 分别出现且只出现一次(不包含 0)。类似这样的带分数,100 有 11 种表示法。输入格式一个正整数。输出格式输出输入数字用数码 1∼9 不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<10^6输入样例1:100输出样例1:11输入样例2:105输出样例2:6解析:这道题就是以全排列为基
2022-01-20 20:24:39
469
原创 递归实现组合型枚举
题目传送门:递归实现组合型枚举从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m ,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行 1 个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如 1 3 5 7 排在 1 3 6 8 前面)。数据范围n>0 ,0≤m≤n ,n+(n−m)≤25输入样例:5 3输出样例:1 2 3 1 2
2022-01-20 13:24:16
266
原创 2022年1月19号学习总结
Factorial#include <iostream>#include <cstdio>using namespace std;long long factorial(int k){ if(k==0) return 1; return k*factorial(k-1);}int main(){ int n; cin>>n; while(n--) { int k; cin
2022-01-19 21:37:31
244
原创 [NOIP2001] 数的划分
题目传送门:[NOIP2001] 数的划分将整数n分成k份,且每份不能为空,任意两个方案不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1;问有多少种不同的分法。输入:n,k ( 6 < n ≤ 200,2 ≤ k ≤ 6 )输出:一个整数,即不同的分法。输入描述:两个整数 n,k ( 6 < n ≤ 200, 2 ≤ k ≤ 6 )输出描述:1个整数,即不同的分法。示例1输入7 3输出4解析:动
2022-01-18 19:35:49
1050
原创 Java带标签的break的用法
Donald Kunth 在一篇名为《Structured Programming with goto statements》的著名文章中指出:无限制地使用goto语句确实很容易导致错误,但在有些情况下,偶尔使用goto跳出循环还是有益处的。Java设计者同意这种看法,甚至在Java语句中增加了一条新的语句: 带标签的break,以此来支持这种程序设计风格。...
2021-12-23 13:46:44
3415
2
原创 两数相加
两数相加给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序 的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.写法一:/** * Definition for singly-linked list. * struct ListNode { *
2021-10-25 19:22:46
120
原创 数据结构这一篇就够了
数据结构一.线性表1.线性表的概念2.线性表的顺序实现一.线性表1.线性表的概念一个线性表是n个数据元素的有限序列,一个数据元素可以由多个数据项组成,并且各个数据元素具有相同的特性。2.线性表的顺序实现在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构或顺序映象 用这种方法存储的线性表称作顺序表。线性表的初始化:...
2021-09-20 19:45:01
2483
3
原创 一篇文章带你学完Java
java一.Java概述1.1 Java的特点1.2 Java的应用平台1.3 Java环境中的几个概念1.4 Java程序的基本组成一.Java概述1.1 Java的特点分布式面向对象跨平台多线程安全健壮性简单动态高性能1.2 Java的应用平台桌面应用开发(Java核心、基础) — JavaSE企业级应用开发 — JavaEE手机等移动产品开发 — JavaME和Android开发1.3 Java环境中的几个概念JVM — Java虚拟机JRE
2021-09-19 11:49:52
826
原创 质数问题
题目链接给定两个整数 n 和 k,请你判断在 [2,n] 的范围内是否存在不少于 k 个质数,满足可以表示为两个相邻质数与 1 的和。例如,19 满足条件,因为 19=7+11+1。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据占一行,包含两个整数 n 和 k。输出格式每组数据输出占一行,如果存在不少于 k 个质数满足条件则输出 YES,否则输出 NO。数据范围1≤T≤30,2≤n≤1000,0≤k≤1000输入样例:527 245 72 015 117
2021-08-06 11:01:48
276
原创 交换相邻元素
交换相邻元素给定一个长度为 n 的数组 a1,a2,…,an。该数组是一个 1∼n 的排列。数组的前 n−1 个位置中,部分位置可以进行交换操作,将该位置的元素与后面相邻位置的元素进行互换。交换操作的次序和次数均不限。请你判断给定的数组能否通过交换操作变为一个升序数组。输入格式第一行包含整数 n。第二行包含 n 个整数 a1,a2,…,an。第三行包含一个长度为 n−1 的 01 字符串,第 i 个字符为 1 表示第 i 个位置可以进行交换操作,第 i 个字符为 0 表示第 i 个位置无法
2021-08-05 14:20:53
2073
原创 平衡数组
平衡数组给定一个长度为 n 的数组 a1,a2,…,an,其中 ai=i。现在,请你选择一个整数 m,并对该数组进行 m 次操作。对于第 i 次操作(i 从 1 开始计数),你需要选定其中一个元素,并将选定元素以外的其他所有元素都增加 i。你的目标是在 m 次操作结束后,数组中各个元素的值都相等。m 不得超过 1000。请你输出具体合理方案。输入格式:第一行包含整数 T,表示共有 T 组测试数据。每组数据占一行,包含一个整数 n。输出格式:每组数据输出占两行。第一行输出操作次数 m。
2021-08-03 18:07:20
625
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人