2022-08-25708阅读🍒LeetCodeLC 658. 找到 K 个最接近的元素先简单贴个题解,有空再补充0.0class Solution { public: vector<int> findClosestElements(vector<i...
2022-08-24436阅读🍒LeetCodeLC 1562. 查找大小为 M 的最新分组思路感觉这个题和并查集有点像,定义一个数组v,v[i]表示i所在位置的连续1的长度,比如"11101"这种情况时v为:[3, 3, 3, 0, 1]当字符串s[i]变成1的时候可以看一下v[i]...
2022-08-19444阅读🍒LeetCodeLC* 189. 轮转数组思路可以采用队列的出入完成,但是不太优雅可以将数组整个翻转比如,123456翻转变成654321,这样前面的数就到了后面,这时我们再取一个中间线即k % nums.size(),把中间线两边的数...
2022-08-07939阅读🍒LeetCodeLC 1408. 数组中的字符串匹配暴力算法这个题的数据范围挺小的,可以直接暴力求解,就不贴代码了拼接字符串可以把words里的所有单词拼成一个字符串str,每个单词之间用','隔开,然后遍历words的每个单词,如果这个单词在s...
2022-05-08608阅读🍒LeetCodeLC 442. 数组中重复的数据题目思路可以在输入数组中用数字的正负来表示该位置所对应数字是否已经出现过。遍历输入数组,给对应位置的数字取相反数,如果已经是负数,说明前面已经出现过,直接放入输出数组。class Solutio...
2022-01-07739阅读🍒LeetCode剑指 Offer 14- I. 剪绳子(DP)题目思路:DP定义dp[n]表示长度为n的绳子最大乘积。一段长度为n的绳子,切第一刀共有n-1种情况,即第一刀绳子的长度为1, 2, 3....n-1。然后再在这些绳子中继续切寻找最大值,切出来...
2022-01-05714阅读🍒LeetCode剑指 Offer 11. 旋转数组的最小数字题目思路可以遍历直接求。也可以采用二分法,定义两个指针,一个指向开头,一个指向末尾。如果中间值处于前面的递增子数组,那么中间值应该大于等于最左边的值,那么最小值应该在中间值的右边。如果中间值处于...
2022-01-04608阅读🍒LeetCode剑指 Offer 03. 数组中重复的数字题目思路1.sort后遍历找到一样的返回。时间复杂O(nlogn)。2.用哈希表遍历如果这个数字为key的value为0则+1,不为0直接return。时间复杂度O(n),空间复杂度O(n)。3...
2022-01-01618阅读🍒LeetCodeLC *516. 最长回文子序列(DP)题目思路二维DP首先确定dp[i][j]含义:字符串s[i...j]的最长回文子序列。转移方程:如果知道dp[i+i][j-1]能不能知道dp[i][j]。图中dp[i+1][j-1] = 1,...
2021-12-30652阅读🍒LeetCodeLC *322. 零钱兑换(DP)题目思路经典DP。dp[i]:兑换i最少需要多少个硬币。确定基本状态:dp[0] = 0状态转移:想要得到amount需要的最少硬币,如果知道了dp[amount-1]的数量,那dp[amoun...