摘要:
题目链接:2601. 质数减法运算 方法:质数打表 + 二分 解题思路 每次将当前$nums[i]$减去一个质数(或不减),使得其变为为大于上一个数的最小值,可以给后面的元素更多减小的空间。 质数打表; 遍历数组$nums$,每次要和前一个数做比较,因此初始化前一个数为$last$。对于当前的$nu 阅读全文
posted @ 2023-04-09 00:31
lixycc
阅读(72)
评论(0)
推荐(0)
摘要:
题目链接:2602. 使数组元素全部相等的最少操作次数 方法:排序 + 前缀和 + 二分查找 解题思路 初始化$target = queries[i]$,根据题意,对于每次询问要将数组$nums$中的元素$=>target$,那么对于小于等于$target$的元素要加上一个数,而大于$target$ 阅读全文
posted @ 2023-04-09 00:28
lixycc
阅读(80)
评论(0)
推荐(0)
摘要:
题目链接:剑指 Offer 49. 丑数 方法:动态规划 解题思路 参考:剑指 Offer 49. 丑数(动态规划,清晰图解) 代码 class Solution { public: int nthUglyNumber(int n) { int a = 0, b = 0, c = 0; int dp 阅读全文
posted @ 2023-04-09 00:25
lixycc
阅读(24)
评论(0)
推荐(0)
摘要:
题目链接:剑指 Offer 48. 最长不含重复字符的子字符串 方法:同向双指针 解题思路 初始化l = 0, r = 0; 右指针右移,直到[l, r]之间出现重复字符,然后将左指针右移,直到[l, r]之间没有重复字符; 即保证[l, r]窗口无重复字符,然后计算最大的窗口长度。 代码 clas 阅读全文
posted @ 2023-04-09 00:06
lixycc
阅读(21)
评论(0)
推荐(0)
摘要:
题目链接:剑指 Offer 46. 把数字翻译成字符串 方法:回溯、动态规划 解题思路 动态规划是回溯中“归”的过程; 思考回溯: (1)将$num$转换为字符串$s$; (2)对于当前位置$i$,可能有两种操作,将$s[i] => 字符$ 或 将$s[i, i + 1] => 字符$,即$dfs( 阅读全文
posted @ 2023-04-09 00:05
lixycc
阅读(22)
评论(0)
推荐(0)
摘要:
题目链接:1574. 删除最短的子数组使剩余数组有序 方法:双指针 + 找规律 解题思路 去除子数组的可能情况: 将第一个递减序列的左端点到末尾的子数组去掉; 将最后一个递减序列的右端点到起点的子数组去掉; 左端点:起点 和 第一个递减序列的左端点之间取, 右端点:最后一个递减序列的右端点和末尾之间 阅读全文
posted @ 2023-04-09 00:03
lixycc
阅读(34)
评论(0)
推荐(0)
摘要:
题目链接:1032. 字符流 方法:字典树 解题思路 理解题意:每一次查询是对从最开始到当前的字符组成的字符串$str$查询$words$数组中是否有字符串是$str$的后缀; 对于字符串的查找使用字典树,每次查询的时间复杂度为$O(L),L = max{word.length()}$,大大降低查找 阅读全文
posted @ 2023-04-09 00:02
lixycc
阅读(26)
评论(0)
推荐(0)
摘要:
题目链接:剑指 Offer 52. 两个链表的第一个公共节点 方法一:两次遍历 解题思路 将两个单链表的遍历指针先置于同一起跑线(相对于相交的点),然后会同时遍历到相交的节点。 注意:模拟下方代码即可理解,第一次遍历长度为长的链表长度,第二次遍历长度为短的链表长度。 代码 class Solutio 阅读全文
posted @ 2023-04-09 00:01
lixycc
阅读(15)
评论(0)
推荐(0)

浙公网安备 33010602011771号