自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 指针函数等

【代码】指针函数等。

2024-08-14 13:41:57 211

原创 指针常量、常量指针、常量指针常量

const type* const 指针值和指针指向的都是常量,即指针和指针解引用后都无法被赋值。const type* 指向常量的指针,即指针解引用后无法被赋值。type* const 指针值是一个常量,即指针无法被赋值。

2024-08-08 15:19:33 93

原创 二进制的位运算(粗略)

如果我们需要判断一个数的奇偶性,可以将其&1,因为一个数转换为二进制后最低位只会是0或1,如果最低位是0即偶数,&1后仍是0,最低位是1即奇数,&1后仍为1。异或运算符(^),示例:x ^ y,两位不同^则1,相同则0,即1^0 = 0^1 = 1,0^0 = 1^1 = 0。位与运算符(&), 示例:x & y,特点是遇0则0,全1则1,也可以理解为无论是0或1,&0则0,无论是0或1,&1还是它本身。正数的补码为它本身,符号位为0,负数的补码为正数数值二进制位取反后加1,符号位为1。

2024-07-22 21:14:53 964

原创 Leetcode 2730找到最长的半重复子字符串 题解

看到最长子字符串可利用滑动窗口来解决,先定义重复数cnt=0,再移动右指针r,在r - l > 0 的情况下判断s[r]和s[r-1]是否相同,如果相同则cnt++,如果cnt>1就说明不符合题目条件,判断s[l]和s[l+1]是否相同,如果相同,cnt--,之后左指针右移,判断最长长度。整个字符串 "52233" 有两个相邻的相同数字对 22 和 33,但最多只能选取一个。子字符串 "111" 有两个相邻的相同数字对,但最多允许选取一个。(相邻的相同数字对是 11 和 88)不是半重复字符串。

2024-07-17 19:55:22 173

原创 基础算法之双指针与滑动窗口

之后再判断最长的长度。1.滑动窗口依靠左右指针的移动来标记窗口的边界,指针的移动就是窗口的滑动,而窗口的大小就可以根据指针移动来调整。在对数组的特定子数组进行查找的题目中往往需要遍历整个数组,常常还不止多遍,面对数组数量过大的情况时间复杂度会大到惊人,利用两个指针不断调整区间从而求出最优解的方法就叫双指针,也称尺取法。删掉位置 4 的数字后,[0,1,1,1,1,1,0,1] 的最长全 1 子数组为 [1,1,1,1,1]。双指针中没有明确的“窗口”概念,因为指针的位置是任意的,不一定构成连续的窗口。

2024-07-17 19:42:13 2048

原创 Leetcode Q860 找柠檬水

该题为贪心和数组的基础题,仅需考虑收到的5美元和10美元的钞票个数,利用数组来存储,如果5美元钞票个数小于将收到的10美元或现有5美元和10美元无法为20美元找零就输出false,优先考虑5美元,反之则true。对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。

2024-07-16 16:13:44 293

原创 Leetcode Q2405 题解

在字符串中遇到了重复的字母即需要划分一次,可以通过哈希表来统计字母出现的次数,如果重复出现,就将哈希表置零,字符串个数增加。两种可行的划分方法分别是 ("a","ba","cab","a") 和 ("ab","a","ca","ba")。只存在一种可行的划分方法 ("s","s","s","s","s","s")。注意,划分后,原字符串中的每个字符都应该恰好属于一个子字符串。也就是说,在单个子字符串中,字母的出现次数都不超过。,请你将该字符串划分成一个或多个。,并满足每个子字符串中的字符都是。

2024-07-16 02:17:16 590

原创 Leetcode Q1323 题解

这题仅是贪心的一道入门题,只需考虑将为6的最高一位变成9就好了。你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6。将最后一位从 6 变到 9,其结果 9999 是最大的数。给你一个仅由数字 6 和 9 组成的正整数。改变第一位数字可以得到 6669。改变第二位数字可以得到 9969。改变第三位数字可以得到 9699。改变第四位数字可以得到 9666。其中最大的数字是 9969。请返回你可以得到的最大数字。

2024-07-16 01:46:28 117

原创 2017蓝桥杯B组-日期问题(c语言)

令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。判断是否符合abc时第一个条件a==y%10 + y/10%10*10 && m==b && d==c如果不行的话就代表c>31,所以只用再判断当c为年份时a和b的月日,刚开始想着所有条件都判断一遍写的很多但是只过了8个样例....输出若干个不相同的日期,每个日期一行,格式是"yyyy-MM-dd"。

2024-03-10 16:03:30 355 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除