- 博客(49)
- 收藏
- 关注
原创 LeetCode每日一题——无重复字符的最长子串
/ans用于记录无重复字符的最长子串的长度;left作为左边界指针。//c字符对应的ASCII值在cnt数组对应位置的元素加1。,请你找出其中不含有重复字符的。因为无重复字符的最长子字符串是。请注意,你的答案必须是。//更新无重复字符的最长子串的长度。因为无重复字符的最长子字符串是。//标准ASCII值一共128个。//逐一遍历字符串的每一个元素。//c储存right指向的字符。来源:力扣(LeetCode)因为无重复字符的最长子串是。//left指向下一个字符。,所以其长度为 1。,所以其长度为 3。
2025-11-14 18:39:56
159
原创 LeetCode每日一题——两数相加(详细解释)
/如果链表l1和l2元素都已遍历,还有进位,则再创建一个位置来储存进位。//链表l1和链表l2对应位置的数值相加再加上进位为sum。//当链表l1和l2其中一个有元素时,循环继续进行。//接受链表l1对应位置的数值,没有就用0来代替。//接受链表l2对应位置的数值,没有就用0来代替。//避免当前tail指针的下一位出现野指针。//更新tail指针的下一位指向的元素。//为tail指针的下一位分配空间。//设置新链表的头指针和尾指针。//更新最终链表对应位置的元素。//得到两数相加后的新链表。
2025-11-06 13:13:07
474
原创 LeetCode每日一题——两数相加
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。来源:力扣(LeetCode)坚持编程,我一直在路上!
2025-11-02 20:24:29
335
原创 LeetCode每日一题——反转链表
/只要curr不为NULL,就执行循环代码。//让next保存curr的下一个节点指针。,请你反转链表,并返回反转后的链表。//返回头节点即可输出反转后的链表。来源:力扣(LeetCode)/prev初始为NULL。//curr指向prev。//prev向后移动一位。//curr向后移动一位。坚持编程,我一直在路上!
2025-10-31 20:20:32
189
原创 LeetCode每日一题——合并两个有序链表
新链表是通过拼接给定的两个链表的所有节点组成的。// 注:相等的情况加哪个节点都是可以的。// 把 list2 加到新链表中。// 把 list1 加到新链表中。将两个升序链表合并为一个新的。// cur 指向新链表的末尾。来源:力扣(LeetCode)// 用哨兵节点简化代码逻辑。坚持编程,我一直在路上!
2025-10-30 17:47:08
249
原创 LeetCode每日一题——Pow(x, n)
/ 从低到高枚举 n 的每个比特位。// 把 x 乘到 ans 中。来源:力扣(LeetCode)// 继续枚举下一个比特位。坚持编程,我一直在路上!// 这个比特位是 1。
2025-10-29 21:59:55
248
原创 LeetCode每日一题——字符串相乘
不能使用任何内置的 BigInteger 库或直接将输入转换为整数。的乘积,它们的乘积也表示为字符串形式。给定两个以字符串形式表示的非负整数。来源:力扣(LeetCode)
2025-10-23 22:03:02
487
原创 LeetCode每日一题——缀点成线
请你来判断,这些点是否在该坐标系中属于同一条直线上。//用交叉相乘是否相等来判断是否共线。//若点数小于或等于2则一定共线。//只要有一点不共线,结果都不相等。//点、线都满足则共线。
2025-10-21 21:30:37
355
原创 LeetCode每日一题——三角形的最大周长
因为我们不能用任何三条边长来构成一个非零面积的三角形,所以我们返回 0。如果不能形成任何面积不为零的三角形,返回。你可以用三个边长组成一个三角形:1 2 2。不能用边长 1、2 和 10 来构成三角形。你不能用边长 1,1,2 来组成三角形。不能用边长 1,1,10 来构成三角形。给定由一些正数(代表长度)组成的数组。来源:力扣(LeetCode)由其中三个长度组成的、
2025-10-20 22:02:39
547
原创 LeetCode每日一题——柠檬水找零
对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。//10出现在第二位或以后位置,更新5美元和10美元的数量。
2025-10-18 22:03:32
545
原创 LeetCode每日一题——去掉最低工资和最高工资后的平均工资值
去掉最低工资和最高工资以后的平均工资是 (2000+3000)/2= 2500。去掉最低工资和最高工资以后的平均工资是 (2000)/1= 2000。请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。最低工资和最高工资分别是 1000 和 4000。最低工资和最高工资分别是 1000 和 3000。//有比Mini小的数就更新Mini。//有比Max大的数就更新Max。//初始化最大值为数组首元素。//初始化最小值为数组首元素。//求出所有元素的和。
2025-10-17 21:59:54
394
原创 LeetCode每日一题——在区间范围内统计奇数数目
3 到 7 之间奇数数字为 [3,5,7]。8 到 10 之间奇数数字为 [9]。//不管是否为奇数,low都+1。之间(包括二者)奇数的数目。坚持编程,我一直在路上!
2025-10-16 21:39:17
474
原创 LeetCode每日一题——矩阵置0
matrix[i][j]相当于matrix[i][j] == 0。,则将其所在行和列的所有元素都设为。来源:力扣(LeetCode)的矩阵,如果一个元素为。//用于标记0所在的行和列。//初始化行数组中元素为0。//初始化列数组中元素为0。//筛选出0所在的行和列。//让0所在行和列都为0。//标记0所在的行和列。
2025-10-15 21:36:00
928
原创 LeetCode每日一题——螺旋矩阵
/控制directionIndex在0~3之间,继续下一个循环。来源:力扣(LeetCode)//分别表示矩阵的行数和列数。,返回矩阵中的所有元素。//用来标记元素是否被访问。//包含矩阵无元素的情况。坚持编程,我一直在路上!//访问完标记该位置。
2025-10-14 22:03:01
1360
原创 LeetCode每日一题——矩阵对角线元素的和
请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。对角线的和为:1 + 5 + 9 + 3 + 7 = 25。请注意,元素 mat[1][1] = 5 只会被计算一次。,请你返回矩阵对角线元素的和。来源:力扣(LeetCode)//n表示矩阵的行数和列数。//表示对角线上元素的特征。//初始化sum为0。
2025-10-13 21:41:56
595
原创 LeetCode每日一题——最富有客户的资产总量
两位客户都是最富有的,资产总量都是 6 ,所以返回 6。就是他们在各家银行托管的资产数量之和。家银行托管的资产数量。返回最富有客户所拥有的。第 2 位客户是最富有的,资产总量是 10。//定义maxWealth为整型的最小值。//先比较大小,然后更新最大值。来源:力扣(LeetCode)//定义宏,精简比较代码。
2025-10-12 18:13:08
713
原创 LeetCode每日一题——困于环中的机器人
/如果机器人朝向没有改变或者回到原点,则返回true,否则返回false。只有在平面中存在环使得机器人永远无法离开时,返回。在无限的平面上,机器人最初位于。来源:力扣(LeetCode)//分别代表上、右、下、左。坚持编程,我一直在路上!机器人按顺序执行指令。//获取字符串的长度。//控制在0~3之间。
2025-10-11 18:50:29
557
原创 LeetCode每日一题——找出井字棋的获胜者
/ 将 moves 填入虚拟棋盘, a 为 -1 , b 为 1。),就返回该游戏的获胜者;如果游戏以平局结束,则返回。的棋盘上进行的游戏。如果仍会有行动(游戏未结束),则返回。//相当于判断i % 2是否为0。来源:力扣(LeetCode)// 横向、纵向判断。规则),网格最初是空的,如果游戏存在获胜者(
2025-10-10 22:00:54
503
原创 LeetCode每日一题——机器人能否返回原点
机器人向左移动两次。它最终位于原点的左侧,距原点有两次 “移动” 的距离。我们返回 false,因为它在移动结束时没有返回原点。机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。//获取字符指针moves指向字符串中有效字符的个数并初始化x和y。//如果最终坐标为(0, 0)返回true,否则返回false。此外,假设每次移动机器人的移动幅度相同。给出它的移动顺序,判断这个机器人在完成移动后是否在。如果机器人在完成所有动作后返回原点,则返回。
2025-10-09 19:27:18
552
原创 LeetCode每日一题——棒球比赛
"+" - 记录加 9 + 5 = 14 ,记录现在是 [5, -2, -4, 9, 5, 14]"+" - 记录加 -4 + 9 = 5 ,记录现在是 [5, -2, -4, 9, 5]"D" - 记录加 2 * -2 = -4 ,记录现在是 [5, -2, -4]"9" - 记录加 9 ,记录现在是 [5, -2, -4, 9]"4" - 记录加 4 ,记录现在是 [5, -2, 4]"-2" - 记录加 -2 ,记录现在是 [5, -2]"2" - 记录加 2 ,记录现在是 [5, 2]
2025-10-08 20:46:37
1278
原创 LeetCode每日一题——转换成小写字母
将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。//k中储存s对应位置元素的和'a'的差值。//控制为大写字母,其他字符不包括在内。//将大写字母转换为小写字母。//遍历s的每位元素。
2025-10-07 15:01:04
511
原创 LeetCode每日一题——最后一个单词的长度
由若干单词组成,单词前后用一些空格字符隔开。是指仅由字母组成、不包含任何空格字符的最大子字符串。//j>0是为了防止越界访问,j指向元素不为空时计数。最后一个单词是长度为 6 的“joyboy”。//strlen除了'\0'外都会计数。最后一个单词是“World”,长度为 5。最后一个单词是“moon”,长度为 4。来源:力扣(LeetCode)//让i指向字符串的最后一位。//作差得最后一个单词的长度。//跳过字符串末尾的空字符。坚持编程,我一直在路上!//让j指向i的前一位。
2025-10-06 13:22:30
578
原创 LeetCode每日一题——罗马数字转整数
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。//除了以上特殊情况,遇到M就+1000。//除了以上特殊情况,遇到C就+100。//除了以上特殊情况,遇到D就+500。//除了以上特殊情况,遇到X就+10。//除了以上特殊情况,遇到L就+50。给定一个罗马数字,将其转换成整数。//除了以上特殊情况,遇到I就+1。//除了以上特殊情况,遇到V就+5。,即为两个并列的 1。//计算s的元素个数。
2025-10-05 11:31:19
1119
原创 LeetCode每日一题——单调数列
如果数组是单调递增或单调递减的,那么它是。//根据flag的值判断数列单调性。来源:力扣(LeetCode)//若出现减的情况则不单调。//若出现增的情况则不单调。//假设数列单调递增。//假设数列单调递减。
2025-10-04 21:35:55
520
原创 LeetCode每日一题——判断能否形成等差数列
对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为。//判断数组相邻元素差值的绝对值是否相等。如果可以重新排列数组形成等差数列,请返回。无法通过重新排序得到等差数列。//将数组元素升序处理。
2025-10-03 21:35:04
520
原创 LeetCode每日一题——数组元素积的符号
数组中所有值的乘积是 144 ,且 signFunc(144) = 1。数组中所有值的乘积是 -1 ,且 signFunc(-1) = -1。数组中所有值的乘积是 0 ,且 signFunc(0) = 0。//通过返回值可确定结果的正负。//用于判断结果非零时的正负。//如果有0,则直接返回0。坚持编程,我一直在路上!中所有元素值的乘积。//遇到负号,符号颠倒。
2025-10-02 12:54:49
395
原创 LeetCode每日一题——加1
加 1 后得到 4321 + 1 = 4322。//如果所有位都是9,就扩大一位数组空间。//如果最后一位不是9,就加1,然后返回数组。加 1 后得到 123 + 1 = 124。将大整数加 1,并返回结果的数字数组。因此,结果应该是 [4,3,2,2]。加 1 得到了 9 + 1 = 10。//不管是几位数,先让首位是0。//如果是9,就让当前位是0。因此,结果应该是 [1,2,4]。因此,结果应该是 [1,0]。输入数组表示数字 4321。输入数组表示数字 123。输入数组表示数字 9。
2025-10-01 11:56:32
805
原创 LeetCode每日一题——移动零
/如果right指向元素不为0,就交换两个指针指向的元素。请注意 ,必须在不复制数组的情况下原地对数组进行操作。移动到数组的末尾,同时保持非零元素的相对顺序。输入: nums = [0,1,0,3,12]//left用于标识非0元素的位置。输出: [1,3,12,0,0]//right用于遍历整个数组。输入: nums = [0]坚持编程,我一直在路上!,编写一个函数将所有。
2025-09-30 21:09:13
521
原创 LeetCode每日一题——重复的子字符串
可由子串 "abc" 重复四次构成。(或子串 "abcabc" 重复两次构成。//子字符串最少重复两次得到原字符串,防止越界访问。,检查是否可以通过由它的一个子串重复多次构成。//所有子串尝试后都不匹配,返回false。//不相等时跳出内层循环,避免无效试错。//此语句执行后,则不会执行之后的程序。可由子串 "ab" 重复两次构成。//对match初始化为true。来源:力扣(LeetCode)给定一个非空的字符串。//获取字符串s的长度。
2025-09-29 18:35:48
604
原创 LeetCode每日一题——有效的字母异位词
题目要求:题目要求:给定两个字符串s和t,编写一个函数来判断t是否是s的 字母异位词。truefalse代码实现://qsort排序时使用//返回第一个字母和第二个字母的差值//返回值为true或falseif (len_s!= len_t) {//如果两个字符串长度不相等,则一定不满足字母异位词//四个参数分别为首元素地址、字符串长度、字符的大小、排序方式//比较排序后的两个字符串是否相等,相等返回true,不相等返回false。
2025-09-28 21:31:47
553
原创 LeetCode每日一题——找出字符串中第一个匹配项的下标
字符串的第一个匹配项的下标(下标从 0 开始)。//不匹配就跳出当前循环,避免无效匹配。//所有字串都不匹配,则返回-1。来源:力扣(LeetCode)//匹配成功返回主串当前下标。//获取两个字符串的长度。//初始化flag为真。
2025-09-27 18:25:58
354
原创 LeetCode每日一题——找不同
/默认操作,一般不会执行到这里,因为题目默认t比s多1个字母。//在上一个for循环基础上,对出现对应字母的位置计数-1。//如果出现对应字母,则再cnt数组中对应位置计数+1。//由于多出的字母只出现1次,故结果为负值,返回该元素。随机重排,然后在随机位置添加一个字母。来源:力扣(LeetCode)//分别对应26个英文字母。,它们只包含小写字母。//获取两个字符串的长度。
2025-09-27 18:18:25
146
原创 LeetCode每日一题——交替合并字符串
开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。//为合并后的字符串分配动态内存空间。题目来源:力扣(LeetCode)//获取word1字符串的长度。//获取word2字符串的长度。//先赋值,指针再向后移动一位。/先赋值,指针再向后移动一位。坚持编程,我一直在路上!//返回合并后的字符串。代码作者:灵茶山艾府。
2025-09-27 18:08:07
445
原创 关于函数指针的使用心得
printf("*****4.除***************\n");printf("*****2.减*******3.乘****\n");printf("*****0.退出*****1.加****\n");使用函数指针可以使调用函数更加方便,提高编程效率,大大简化代码数量。printf("退出计算器\n");printf("请输入两个整数:\n");//使用float可以使计算结果保留其小数位数。//函数指针解引用不需要在前面加上"*"//创建函数指针(指向函数的指针)//构造加、减、乘、除函数。
2025-09-20 19:52:10
549
原创 使用指针访问数组元素
/因为数组传参数组名会退化为首元素地址,所以这里需要把数组的大小传给Print函数。要求:写一个函数打印arr数组的内容,不使用数组下标,使用指针。学会使用指针访问数组元素,可以提高编程效率,让代码更加精简。//这里设置变量flag,可以提高代码运行效率。//把数组首元素地址存到指针变量p中。要求:实现一个对整形数组的冒泡排序。arr是一个整形一维数组。一、使用指针打印数组内容。一、使用指针打印数组内容。坚持编程,我一直在路上。//比较相邻两个元素。
2025-09-14 18:01:09
480
原创 有关数组操作的使用心得
数组操作常和函数搭配使用,可适用多种情景,对于数组的创建及数组元素遍历要多加联系。// right 往左走,直到找到奇数。//遍历数组中的每个元素,如果遇到"\0"就跳出循环。// left 往右走,直到找到偶数。//把输入的字符放进数组里。坚持编程,我一直在路上!四、strlen实现。
2025-08-31 20:31:53
705
原创 原码、反码和补码讲解
要求:写一个函数返回参数二进制中 1 的个数。要求:编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?printf("打印前a = %d, b = %d\n", a, b);printf("打印后a = %d, b = %d\n", a, b);// 64 位输出请用 printf("%lld") to。//让不同的位置是1,其他位置都是0。while(c)//计算c中1的个数。要求:不允许创建临时变量,交换两个整数的内容。
2025-08-25 19:28:37
406
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅