摘要:
详细思路 想要在n1时间完成,枚举每一根柱子作为短板,向左右找,如果大于本身,就可以,直到遇到更短的就不行,也就是找到第一个小于本身的柱子,“找到第一个”用单调栈,用一个数组记录每一个柱子的“左边第一个”,一个数组记录“右边第一个”,如675,遇到6,栈顶-1记录,接着6push,遇到7,栈顶6记录 阅读全文
posted @ 2021-07-30 23:54
offer快到碗里来~
阅读(44)
评论(0)
推荐(0)
摘要:
详细思路 leftright,left是已经好了,right是需要判断,相等right++,不相等left连上去,++ ++; 画图 class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(!head||!he 阅读全文
posted @ 2021-07-30 22:37
offer快到碗里来~
阅读(41)
评论(0)
推荐(0)
摘要:
详细思路 leftright,left是已经好了,right是需要判断,如果right记录数字,下一步遇到不同的就说明原来right是好的,如果相同就一直向前直到 画图 精确定义 left right temp class Solution { public: ListNode* deleteDup 阅读全文
posted @ 2021-07-30 18:19
offer快到碗里来~
阅读(27)
评论(0)
推荐(0)
摘要:
详细思路 双指针,left是已经弄好的,right去探索,只要left左边不会和right相同,就可以left++并保存,right++去探索 精确定义 left已经 right需要 class Solution { public: int removeDuplicates(vector<int>& 阅读全文
posted @ 2021-07-30 16:31
offer快到碗里来~
阅读(39)
评论(0)
推荐(0)
摘要:
详细思路 dfs,每个格子都可以作为入口,上下左右遍历,vis防止重复使用,每次入口都要重置vis,上下左右是需要的单词才能进入 精确定义 depth需要处理的第几个单词下标,当==n就是答案true x已经处理好的 y已经处理好的 class Solution { public: bool ans 阅读全文
posted @ 2021-07-30 16:30
offer快到碗里来~
阅读(75)
评论(0)
推荐(0)
摘要:
详细思路 枚举每个数,要这个数,或者不要这个数,每一次都要放进ans,如果到了最大的,要了后就返回,begin+1防止只是交换和重复拿一个数 精确定义 begin class Solution { public: vector<vector<int>> subsets(vector<int>& nu 阅读全文
posted @ 2021-07-30 11:58
offer快到碗里来~
阅读(79)
评论(0)
推荐(0)
摘要:
详细思路 dfs,枚举选一个数,进入递归,或者不要这个数,记录深度也就是需要处理第几个数,begin防止只是交换 精确定义 begin depth class Solution { public: vector<vector<int>> combine(int n, int k) { vector< 阅读全文
posted @ 2021-07-30 11:47
offer快到碗里来~
阅读(26)
评论(0)
推荐(0)
摘要:
详细思路 滑动窗口,窗口内所有字符用哈希表字符映射次数,另一个哈希表把第二个字符串处理好,right是窗口内最后一个元素,left是窗口第一个元素,先向右一步,然后只要检查成功就不断向左,再向右一步,直到不能再向右 精确定义 need have left right class Solution { 阅读全文
posted @ 2021-07-30 11:36
offer快到碗里来~
阅读(31)
评论(0)
推荐(0)
浙公网安备 33010602011771号