分类
Growth | Study
第零章:回溯算法解题套路框架 第零章:回溯算法解题套路框架
labuladong回溯算法解题套路框架 解决一个回溯问题,实际上就是一个决策树的遍历过程。主要考虑的问题有: 路径:也就是已经做出的选择。 选择列表:也就是你当前可以做的选择。 结束条件:也就是到达决策树底层,无法再做选择的条件。
2020-07-24
第零章:动态规划解题套路框架 第零章:动态规划解题套路框架
labuladong动态规划解题套路框架 动态规划之背包汇总 第零章:动态规划解题套路框架第一章:经典动态规划:0-1 背包问题第零章:经典动态规划:子集背包问题第零章:经典动态规划:完全背包问题 动态规划一般采用自底向上的方式求最值。
2020-07-24
第零章:学习算法和刷题的框架思维 第零章:学习算法和刷题的框架思维
labuladong学习算法和刷题的框架思维 124. 二叉树中的最大路径和_后序遍历 采用后序遍历:先访问左子树,再访问右子树,最后根据左右子树的结果和当前节点更新当前节点对应的最大值 maxVal 记录的是全局最大路径和(可以不返回,因
2020-07-23
Python经典排序算法 Python经典排序算法
Python经典排序算法 Complete Beginner’s Guide to Big O Notation 选择排序 对每一个nums[i], 寻找 $range(i,n)$ 范围内比nums[i]大的数,并与之交换 以此类推,位置
2020-07-22
搜索旋转排序数组系列 搜索旋转排序数组系列
153. 寻找旋转排序数组中的最小值 二分查找过程中,比较mid与right(而非left)的原因:以 [1,2,3,4,5,6,7] 为例,分以下情况 若[1,2,3,4,5,6,7] 左<中,中<右。最小值在最左边, 所以
2020-07-17
第零章:一个方法团灭 nSum 问题 第零章:一个方法团灭 nSum 问题
labuladong一个方法团灭 nSum 问题 1. 两数之和方法1:利用字典去重 利用字典保存遍历过程变量,若满足条件,则返回结果 class Solution(object): def twoSum(self, nums,
2020-07-16
第四章:如何判断回文链表 第四章:如何判断回文链表
labuladong如何判断回文链表 234. 回文链表方法1:链表转列表,双指针逼近将链表转化为列表,然后利用左右双指针技巧,从两端到中间逼近 # Definition for singly-linked list. # class Li
2020-07-13
第四章:如何同时寻找缺失和重复的元素 第四章:如何同时寻找缺失和重复的元素
labuladong如何同时寻找缺失和重复的元素 645. 错误的集合 利用set去重,并记录重复的元素 遍历一遍range(1,len(nums)+1),找到并记录不存在于set中的元素 class Solution(object):
2020-07-13
第四章:如何寻找缺失的元素 第四章:如何寻找缺失的元素
labuladong如何寻找缺失的元素 448. 找到所有数组中消失的数字 先遍历列表,并加到set中。利用 HashSet 去重 若元素不在列表中,则表示该元素缺失 class Solution(object): def fi
2020-07-13
第四章:如何判定括号合法性 第四章:如何判定括号合法性
labuladong 如何判定括号合法性 解题思路:遇到左括号就入栈,遇到右括号就去栈中寻找最近的左括号(栈顶元素),看是否匹配。 20. 有效的括号Krahets的极简思路及实现 栈 stack 为空: 此时 stack.pop() 操作
2020-07-13
第四章:如何寻找最长回文子串 第四章:如何寻找最长回文子串
labuladong 如何寻找最长回文子串 5. 最长回文子串 回文串的长度可能是奇数也可能是偶数,如果是 abba这种情况,没有一个中心字符。所以可以: 找到以 s[i] 为中心的回文串(对奇数回文串),找到以 s[i] 和 s[i+1]
2020-07-13
第四章:如何k个一组反转链表 第四章:如何k个一组反转链表
labuladong如何k个一组反转链表 25. K 个一组翻转链表 利用栈先进后出,反转k个一组的链表 stack中存放的是ListNode 虽然存放在stack中,但ListNode之间的指向关系仍然保留 以 1->2-&
2020-07-13
7 / 8