上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 回溯法 思路: 参考78.子集,在添加子集的时候多了判断去重操作。 代码: class Solution: def subsetsWithDup(self, nums: List[int]) -> List[List[int]]: def backtrack(path = [],begin = 0) 阅读全文
posted @ 2020-06-18 10:53 nil_f 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 找规律 思路: 格雷编码生成过程,G(i) = i ^ (i/2) 例如: n = 3: G(0) = 000, G(1) = 1 ^ 0 = 001 ^ 000 = 001 G(2) = 2 ^ 1 = 010 ^ 001 = 011 G(3) = 3 ^ 1 = 011 ^ 001 = 010 阅读全文
posted @ 2020-06-18 09:57 nil_f 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 双指针 思路: 方法①:从前向后,将nums1中前m个元素取出放到新数组中,对新数组和nums2分别从头开始遍历,在nums1中插入两者中较小元素,较小元素的数组后移一位,较大元素的数组不变,继续判断,直到其中一个数组元素全部插入到num1中,将还有的剩余的数组的剩下所有元素插入到num1中即可。 阅读全文
posted @ 2020-06-17 08:47 nil_f 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 递归 思路: 判断字符串S是否由T变换得来,可以分情况讨论: 如果S长度和T不相等,则为False; 如果S和T长度相等,那么对两个字符串进行拆分,得S1,S2 和 T1 ,T2。 那么S由T变换而来得情况有两种: ①S1 == T1 , S2 == T2 ②S1 == T2 , S2 == T1 阅读全文
posted @ 2020-06-17 08:16 nil_f 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 双指针 思路: 初始化两个before,after。遍历head链表,如果head指针指向的元素小于x,将该节点插入before,否则将该节点插入after。遍历完成后,将before和after拼接。 代码: # Definition for singly-linked list. # class 阅读全文
posted @ 2020-06-17 07:39 nil_f 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 单调栈 思路: 遍历每一行,用dp记录每行元素与之前行所能形成的柱形图的高,之后用单调栈的方式找到每行最大矩形面积,单调栈方式参考84.柱形图中最大的矩形 代码: class Solution: def largestRectangleArea(self,heights: List[int]) -> 阅读全文
posted @ 2020-06-16 12:28 nil_f 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 单调栈 思路: 要找到最大矩形,只需要遍历每个元素得到高,得到高后再对每个元素进行左右扩散来确定对应的宽。这里确定宽的条件是如果遇到比自己低的就停止扩散。我们可以用两个数组来记录每个元素高所对应宽的左边界和右边界,确定左右边界可以采用单调栈的方式。单调栈用来记录左右边界的下标,在遍历过程中,如果遇到 阅读全文
posted @ 2020-06-16 08:38 nil_f 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 直接法 思路: 将结点的值与它之后的结点进行比较来确定它是否为重复结点。如果它是重复的,我们更改当前结点的 next 指针,以便它跳过下一个结点并直接指向下一个结点之后的结点。 代码: # Definition for singly-linked list. # class ListNode: # 阅读全文
posted @ 2020-06-15 11:33 nil_f 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 双指针 思路: 创建一个空的头结点dummy,头节点的下一节点是head。用cur指向当前要处理去重的节点,pre指向上一个完成去重的节点。初始状态pre = dummy,cur = pre.next。开始对cur进行处理,如果cur.next.val == cur.val,while遍历更新cur 阅读全文
posted @ 2020-06-15 11:24 nil_f 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 二分法 思路: 参考33.搜索螺旋排序数组。这里由于数组中有重复元素,可能出现nums[l] == nums[r]的情况影响二分法的判断,将l+1直到nums[l]!=nums[r]再进行区间二分判断即可。 代码: class Solution: def search(self, nums: Lis 阅读全文
posted @ 2020-06-14 14:53 nil_f 阅读(171) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页