摘要:
详细思路 dfs,深度==放进ans并返回,枚举数字,放进ans1,或者不要,vis防止重复拿一个元素,排序后nums[i]==nums[i-1]continue防止只是交换 精确定义 depth需要判断第几个数字 class Solution { public: vector<vector<int 阅读全文
posted @ 2021-07-28 15:11
offer快到碗里来~
阅读(42)
评论(0)
推荐(0)
摘要:
详细思路 dfs,每次枚举每个数,每次取一个放到ans1,或者不要,保存深度,vis防止取同一个数 精确定义 depth需要处理第几个元素,深度 class Solution { public: vector<vector<int>>ans; vector<vector<int>> permute( 阅读全文
posted @ 2021-07-28 15:00
offer快到碗里来~
阅读(34)
评论(0)
推荐(0)
摘要:
详细思路 从左到右,每次维护寻找最远可到达的位置和上次找到的最远可到达的位置,在走向上次找到的最远可到达位置的时候不断寻找最远可到达位置,到达上次找到最远可到达位置后ans++并更新,直到寻找最远可到达位置大于终点直接ans++ 精确定义 lastfind上次找到的最远可到达的位置的下标 nowfi 阅读全文
posted @ 2021-07-28 13:54
offer快到碗里来~
阅读(33)
评论(0)
推荐(0)
摘要:
详细思路 第i第j可以从某些转移过来 精确定义 dp ij 下标为0代表空,下标为1代表第一个字符,前ij个字符是否匹配 si pj 下标为0代表第一个字符 状态转移 - - 1 - - 1(?) dpi j=dp i-1 j-1 - - 1 - - * dpi j=dp i-1 j || dp i 阅读全文
posted @ 2021-07-28 13:25
offer快到碗里来~
阅读(63)
评论(0)
推荐(0)
摘要:
详细思路 创建一个数组ans用于保存计算结果,从右往左遍历ij,把num1[i]*num2[j]结果放到ans[i+j+1],这样最高位num1[0]*num2[0]放到ans[1],ans[0]放进位,最低位num1[n-1]*num2[m-1]放ans[n+m-1],ans需要n+m长度。计算完 阅读全文
posted @ 2021-07-28 12:43
offer快到碗里来~
阅读(48)
评论(0)
推荐(0)
摘要:
详细思路 对于下标i雨水,=左右两边最大高度的较小值-height[i],怎么求得左右两边最大高度的较小值,对于i节点左边的最大高度,一遍从左往右遍历,不断更新最大值,同理i节点右边的最大高度;遍历每个位置获取每个下标的雨水量,加入答案 精确定义 leftMax[i]下标i左边包括i的最大高度,也是 阅读全文
posted @ 2021-07-28 11:38
offer快到碗里来~
阅读(117)
评论(0)
推荐(0)
摘要:
详细思路 长度是n的数组,最小未出现正数在[1,n+1],如果[1,n]都在数组里,就是n+1,否则第一个不在的返回,遍历数组,如果数组都是正数,如果[1,n]出现在数组就在数字对应的位置打上负号标记,最后遍历一遍,如果都有负号标记就是n+1,如果有正号就是那个位置,怎么做到数组都是正数,可以对于非 阅读全文
posted @ 2021-07-28 08:42
offer快到碗里来~
阅读(26)
评论(0)
推荐(0)
浙公网安备 33010602011771号