- 博客(21)
- 收藏
- 关注
原创 leetcode每日一题:3258.统计满足K约束的子字符串数量I
由于我们每次记录了0、1的数量,而每次i遍历也就是少了首位,首位的0、1也是可知的,因此i循环中的 j、count0、count1、lenth这些不一定需要重置。如果一个字符串不满足约束,则包含该子字符串的字符串也不满足约束。如果一个字符串满足约束,其子字符串必满足约束。
2024-11-12 11:17:13
872
原创 leetcode每日一题:540.有序数组中的单一元素
题目: 代码: class Solution: def singleNonDuplicate(self, nums: List[int]) -> int: for i in range(0,len(nums)-1,2): if nums[i] != nums[i+1]: return nums[i] return nums[-1]
2024-11-10 10:43:45
244
原创 leetcode每日一题:3256.长度为k的子数组的能量 II
也就是根据那些非连续递增的元素,把一部分子数组的能量值设置为-1的时候,如表格所示,有些X是重叠的,但是我们没管他。表示 长度为k-1、的全1二进制数,比如k=3 则b = 11 = 2^2-1 ,k=5 则b = 1111 = 2^4 -1。但是普通的数字,无法表示太长的数组,题目中给到nums<= 10^6,一般的变量无法表示这么长的二进制。比如1010,1的地方也就是下标1与下标3,对于下标1与3为首的子数组,能量为-1。的元素,满足nums[ index ]!但是在今日,超时了。
2024-11-07 15:35:32
356
原创 leetcode每日一题:3254.长度为k的子数组的能量值I
另外:由于从10,11元素开始,向后的长度不够k,因此,从10,11也无法组成长度k的递增子数组。若j=0,k=3,则其能量为nums[ 0+3-1 ] = nums[ 2 ] =3。例如:下标4,及元素4 -> 3, 导致了 [3 4 3]、[4 3 2]不是递增的。我们可以明显看到,4->3、3->2、5->4、4->1不是递增的,而是下降的。假设有数组【1,2,3,4,3,2,5,6,7,4,1,2】, k=3。的√元素,也就是下标j的元素为首的,k长子递增数组,其。下表列出了下标x的元素,
2024-11-06 11:43:20
584
原创 leetcode每日一题:3222.求出硬币游戏的玩家
例如:x=5 y=14,将10的硬币转化成40的--> x=5 y=3=14/4 ,然后一眼看出x=5,y=3中 y最小为3,因此只能组合成3次115,赢家是Alice。因此,可以将4个10的硬币看出 一个40的硬币,如此 75与40将会是1:1的关系。75和10只能以 1个75 + 4个10组合成115。然后看75和40哪个最少 就决定了能组合多少个115。
2024-11-05 10:11:17
506
原创 leetcode每日一题:633.平方数之和
但假如我们有第一个循环 for i = 1;i * i < c;i++ 确定x1时,可以将问题转变。
2024-11-04 11:34:00
571
原创 leetcode每日一题:3216.交换后字典序最小的字符串
字典序举例就是:“abc”、“bca”、“dba”、“aba” 排序———》“aba”、“abc”、“bca”、“dba”,因为看第一位a<b<d ,所以bca和dba在axx后面,dba在bca后面;而abc与aba的第三位有:a<c所以aba序最小。首先,交换的两个字符肯定的右边小左边大。同样,交换的两个字符时,越靠左越好。一句话就是:对字符串从左往右找到第一个 相邻的、奇偶性相同的、且右边比左边小的两个字符,交换他们。给你一个纯数字的字符串,你交换两个<的>字符后,这个字符串的“
2024-10-30 21:43:20
355
原创 leetcode每日一题:3211.生成不含相邻零的二进制字符串
给你个数字n,你要返回所有满足要求的长度为n的二进制字符串。要求是:这个字符串当中不能有相邻的0比如给你个3,不能返回 "001"、"100"因为他两个都有相邻的0。
2024-10-29 18:18:54
238
原创 leetcode每日一题:3181.执行操作可获得的最大总奖励 II
红1的结果 = 红1 | 蓝1 = 1 | 1= 1 (红蓝1指的是红蓝色部分从右往左数第1位)参考官方题解,使用big.Int 它能够处理任意大小的整数,适合高精度计算或大数运算的需求。由于int型的数,可以表示二进制的位数,非常非常有限,稍微大一点的数几百,就会导致溢出。只是我写的开了一些。但是,在今日的题目中,提交不行,因为占用的空间太太太大了。红2的结果 = 红2 | 蓝2 = 1 | 1= 1。big.Int的位与:X.And(值1,值2)big.Int的位或:X.Or(值1,值2)
2024-10-26 16:58:33
1485
原创 leetcode每日一题:3180.执行操作可获得的最大总奖励 I
用于记录每次访问,状态空间各值的可达到情况(也就是我们画的那张表),bool[ 行 ] [ 列 ] ,换个角度理解 本次访问时状态空间的1可否达到 = 上次访问时状态空间0可否达到。从后往前访问f [ n ]内的元素,第一个遇到为True的值为结果。本次访问元素值 v = rewardValue[ i ]重点:组合数的最大值至多为 17 = 9 + 8。所有rewardValue访问完后,假设有数组:【1,3,4,6,9】不受影响,,直接复制下来。不受影响,,直接复制下来。不受影响,直接复制下来。
2024-10-25 22:21:13
1538
原创 leetcode每日一题:3175.找到连续赢K场比赛的第一位玩家
第1次比较后:4,6,3,1,8,5,7,9,2。第2次比较后:6,3,1,8,5,7,9,2,4。第3次比较后:6,1,8,5,7,9,2,4,3。第4次比较后:6,8,5,7,9,2,4,3,1。第5次比较后:8,5,7,9,2,4,3,1,6。第6次比较后:8,7,9,2,4,3,1,6,5。第7次比较后:8,9,2,4,3,1,6,5,7。第8次比较后:9,2,4,3,1,6,5,7,8。第n次比较后:9,x,x,x,x,x,x,x,x。起始:4,2,6,3,1,8,5,7,9。
2024-10-24 15:44:53
292
原创 csust-leetcode打卡test
比如数字11可以与取24模后为13的任意数匹配,只需要查看hash[13] = x,就知道11可以与x个数字匹配成24的倍数了。双循环,对hours数组从左到右遍历,每次从遍历的数hours[i]的右侧hours[j]寻找有没可与其组成( hours[i] + hours[j] ) % 24 == 0的,有则结果加1。但是这样复杂度太高会导致超时。解决办法:我们遍历时从左到右,遍历到某一位置时,只能知道他左边的值大小,如果只拿左边值与当前值匹配,就可以防止重复匹配。考虑是否可以一次遍历得出结果?
2024-10-23 16:24:48
166
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人