力扣
文章平均质量分 63
小飞猪Jay
远风知我意,微凉又深情。
展开
-
1702. 修改后的最大二进制字符串
这道题有两种操作方式,一种是将00变成10,一种是将10变成01,求任意次操作之后可以得到的最大二进制的字符串。然后我们使用操作2,将两个位置之间的所有的1都移动到末尾,就变成了1000000000011111111111。然后再使用操作1,将所有连着的0都变为1,只保留最后一个0,1111111111011111111111。nononono,举个最简单的例子,010,我们就可以先用操作2变成001,再用操作1变成101。一个随便敲的字符串,首先确定01交互的位置,就是第一个0的位置到最后一个0的位置。原创 2024-04-10 09:22:44 · 228 阅读 · 0 评论 -
766. 托普利茨矩阵
正常来讲,最直观的做法应该就是第一行的每个元素开始向右下方遍历,看看是否相等;但其实你仔细思考一下,就会发现,不需要这么麻烦,满足题意的最基本的条件,不就是每个元素都跟左上方的元素相等么(如果存在的话)。如果这个矩阵是托普利茨矩阵,返回 true;输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵。输入:matrix = [[1,2],[2,2]]对角线 “[1, 2]” 上的元素不同。原创 2024-04-01 09:36:40 · 681 阅读 · 0 评论 -
331. 验证二叉树的前序序列化
那我们首先定义一个num,表示我们当前可以走的路的数量,因为我们开始一定是可以走根节点的,然后开始从根节点开始遍历,当前位置是数字,就num++,说明可以往下面走;当我们从前遍历到某一个位置的时候,该位置为数字,就说明他是可以继续向前走的,当该位置是#,就说明这个位置走不了了,只能往回走。例如,上面的二叉树可以被序列化为字符串 “9,3,4,#,#,1,#,#,2,#,6,#,#”,其中 # 代表一个空节点。输入: preorder = “9,3,4,#,#,1,#,#,2,#,6,#,#”原创 2024-03-31 10:27:26 · 497 阅读 · 0 评论 -
2952. 需要添加的硬币的最小数量
如果coins[i] ≤ x,说明当前这个硬币其实是多出来的,因为我们刚才已经说了,x指的是当前 [ 1 , x-1 ] 都是可以得到的,说明在遍历到coins[i]之前就已经可以得到[1 , x-1] ,那加了coins[i]后,可以得到的面值就变成了[1,x+coins[i]-1],所以x的值就更新为x+coins[i]。x是我们要加的面值从1开始,这里要注意的是,x不只是我们要加的硬币的数值,还指x以内的面值已经都可以得到了,即 [1,x-1]都可以得到。原创 2024-03-30 10:35:14 · 607 阅读 · 0 评论 -
2681. 英雄的力量
英雄的力量原创 2023-08-01 14:06:32 · 291 阅读 · 0 评论 -
874. 模拟行走机器人
模拟行走的机器人原创 2023-07-19 11:12:11 · 380 阅读 · 0 评论 -
834. 树中距离之和
树型DP原创 2023-07-16 16:17:22 · 235 阅读 · 0 评论 -
1335. 工作计划的最低难度
动态规划原创 2023-05-16 20:04:11 · 365 阅读 · 0 评论 -
1015. 可被 K 整除的最小整数
那我们不如每次就只保存他的余数就好了,因为按照题意是每次在后面加个数位1,那其实改成余数乘以10再加一就行了。首先就是余数在之前出现过了,那此时再继续循环操作的话,还是会得到重复的步骤,所以直接返回-1.最原始的暴力,就是从一位的1开始枚举,但这样显然是不行的。给定正整数 k ,你需要找出可以被 k 整除的、仅包含数字 1 的最 小 正整数 n 的长度。如果不存在这样的 n ,就返回-1。解释:最小的答案是 n = 111,其长度为 3。解释:最小的答案是 n = 1,其长度为 1。首先看看暴力能不能做。原创 2023-05-10 22:12:56 · 429 阅读 · 0 评论 -
2437. 有效时间的数目
就依次还原,当还原到最后的位置的时候,判断还原后的时间是否合法,即小时<24,分钟<60,合法的话res++,不合法的话回溯到上一个?给你一个长度为 5 的字符串 time ,表示一个电子时钟当前的时间,格式为 “hh:mm”。最早 可能的时间是 “00:00” ,最晚 可能的时间是 “23:59”。长度为五的字符串,表示时间,前两个数字是小时,后两个数字是分钟,中间是冒号。替代,问被替代的字符串最多可以还原回多少种时间?替换掉的数位是 未知的 ,被替换的数字可能是 0 到 9 中的任何一个。原创 2023-05-09 10:24:01 · 55 阅读 · 0 评论 -
1263. 推箱子
推箱子原创 2023-05-08 21:20:32 · 813 阅读 · 0 评论 -
1010. 总持续时间可被 60 整除的歌曲
形式上,我们希望下标数字 i 和 j 满足 i < j 且有 (time[i] + time[j]) % 60 == 0。1-59,2-58,3-57这种的,就直接对应数量做乘法就行。那这样的话,不就是对所有的数都对60取余,然后用一个数组存下余数对应的数有多少个,然后1-59,2-58这样两个余数对应的数字的数量相乘,不就是答案嘛?那想到这,就很自然地发现,对60取余之后,就变成60以内的数了,那如果最终结果是60的倍数,不就说明余数相加是60的倍数嘛?输入:time = [60,60,60]原创 2023-05-07 13:33:26 · 420 阅读 · 0 评论 -
1419. 数青蛙
模拟原创 2023-05-06 13:32:58 · 181 阅读 · 0 评论 -
2106. 摘水果
前缀和,二分原创 2023-05-04 21:34:49 · 601 阅读 · 0 评论 -
1031. 两个非重叠子数组的最大和
dp,两个非重叠子数组的最大和原创 2023-04-26 12:13:18 · 415 阅读 · 0 评论 -
1105. 填充书架
填充书架原创 2023-04-23 12:40:22 · 204 阅读 · 0 评论 -
1027. 最长等差数列
最长等差数列原创 2023-04-22 15:30:03 · 408 阅读 · 0 评论 -
1043.分隔数组以得到最大和
DP原创 2023-04-19 14:43:32 · 169 阅读 · 0 评论 -
1026. 节点与其祖先之间的最大差值
节点与祖先之间的最大差值原创 2023-04-18 09:43:58 · 52 阅读 · 0 评论 -
1042. 不邻接植花
在每个花园中,你打算种下四种花之一。以数组形式返回 任一 可行的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。就是有四种颜色的花可以选择,给每个公园种一种颜色的花,给出所有公园之间的路径信息,要求有路径连通的两个公园种的花的颜色不能相同。给出一种满足要求的答案。对于这道题而言,搜索回溯其实都不用,因为题目中给出,保证存在答案,这说明无论我们怎么种花,其实都是可以找到答案的。你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。原创 2023-04-15 14:56:42 · 316 阅读 · 0 评论 -
1147. 段式回文
用双指针的思想,从前和从后两个方向进行移动和判断,当前面的词等于后面的词的时候,那说明当前长度是可以分割的,而且是前面分割一次,后面分割一次,这样就会使得 res += 2。如果还可以继续分割,就继续重复上述的步骤,然后最后判断res是否需要+1。解释:我们可以把字符串拆分成 “(ghi)(abcdef)(hello)(adam)(hello)(abcdef)(ghi)”。解释:我们可以把字符串拆分成 “(a)(nt)(a)(pre)(za)(tpe)(za)(pre)(a)(nt)(a)”。原创 2023-04-12 19:28:01 · 521 阅读 · 0 评论 -
1041. 困于环中的机器人
1041. 困于环中的机器人原创 2023-04-11 21:53:15 · 52 阅读 · 0 评论