LeetCode icon indicating copy to clipboard operation
LeetCode copied to clipboard

数据结构应知应会

一个工程师的自我修养


1.python解题Leetcode? + details

2.java解题src/Solution? + details

2.C++解题CPP/Solution? + details

4.特别部分random


面试过

  • EggTopFloor

    • Tencent - Machine learning Engineer
  • HuffmanEncoding

    • Didichuxing - Statistical Analyst
  • 最大公共字符串长度

    • 字节跳动
  • 素数伴侣

    • HuaWei - Machine learning Engineer
    • 核心在于匈牙利算法
  • Lru_Cache

    • 360 - Deep learning Engineer
  • 消消乐

    • Tencent - Deep learning Engineer
  • 花匠摆花

    • Tencent - Deep learning Engineer

    • source from:http://codeforces.com/contest/474/problem/D

  • 意图相似度

    • 阿里 - Algorithm Engineer
  • 数组分组问题

    • 携程 - Deep learning Engineer
  • 连乘质数和

    • 快手2020校招
  • binarySearchTree

    • 搜索二叉树
  • 文本编辑距离

  • 01背包

  • 完全背包

  • 多重背包

    • 三个都是一个套路,以01背包进行拓展
  • 约瑟夫环问题

  • 按递增间隔删数,直到最后只剩下一个数

  • SortAlgorithm

    • Almost everytime such as Alibaba、JD、Didichuxing...
  • GapCount

    • Hp(Hewlett-Packard) - Model Engineer
  • 无序数组排序(时间复杂度为O(n))

    • 蚂蚁金服
  • 计数排序

    • 阿里-推荐算法工程师
  • 插入排序

  • 希尔排序

  • 归并排序

  • 堆排序

  • 切钢条

  • 切钢条

    • 阿里-数据智能技术架构师

数组

  • two-sum

    • source from:https://leetcode-cn.com/problems/two-sum/
  • container-with-most-water

    • source from:https://leetcode-cn.com/problems/container-with-most-water/
  • 3Sum

    • 左右双指针,亮点在于定义了很多提前跳出条件,在相同值跳过的条件判断中用nums[i+1]还是nums[i-1]尤为灵活

    • source from:https://leetcode-cn.com/problems/3sum/

  • 3Sum Closest

    • 这题和上面一题很类似,只是最好不要在多生产变量了,直接拿num[first]+num[last]+num[i]去和target比,而不要考虑差值是否大于0,很容易绕进去

    • source from:https://leetcode-cn.com/problems/3sum-closest/

  • 4Sum

    • source from:https://leetcode-cn.com/problems/4sum/
  • Remove Duplicates from Sorted Array

    • source from:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
  • Remove Element

    • source from:https://leetcode-cn.com/problems/remove-element/
  • search-in-rotated-sorted-array

    • 螺旋数组二分

    • source from:https://leetcode-cn.com/problems/search-in-rotated-sorted-array/

  • find-first-and-last-position-of-element-in-sorted-array

    • 这个考的是二分法中的while跳出条件和left、right变化逻辑,本题是找出左右边界

    • source from:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/

  • Search Insert Position

    • source from:https://leetcode-cn.com/problems/search-insert-position/
  • combination-sum

    • 这题和上面这题很像,递归在for循环里面的回溯算法,把所有情况跑一遍。画重点,求解过程中存着result 是List<List<Integer>>的,而tmp_list是list的,需要把tmp_list再裹一层new ArrayList<>(tmp_list)再进行add

    • source from:https://leetcode-cn.com/problems/combination-sum/

  • trapping-rain-water

    • 动态规划和栈的两种方法,很值得看一下

    • source from:https://leetcode-cn.com/problems/trapping-rain-water/

  • rotate-image

    • source from:https://leetcode-cn.com/problems/rotate-image/
  • jump-game

    • 记录上次每次可跳的最远距离

    • source from:https://leetcode-cn.com/problems/jump-game/

  • MergeIntervals

    • source from:https://leetcode-cn.com/problems/merge-intervals/
  • SpiralMatrixII

    • 旋转矩阵题型,用了余数判断位置,比较亮点

    • source from:https://leetcode-cn.com/problems/spiral-matrix-ii/

  • unique-paths-ii

    • source from:https://leetcode-cn.com/problems/unique-paths-ii/
  • sort-colors

    • source from:https://leetcode-cn.com/problems/sort-colors/
  • Subsets

    • 这题利用了python的语言机制,很有意思

    • source from::https://leetcode.com/problems/subsets/

  • word-search

    • source from:https://leetcode-cn.com/problems/word-search/
  • largest-rectangle-in-histogram

    • source from:https://leetcode-cn.com/problems/largest-rectangle-in-histogram/
  • merge-sorted-array

  • merge-sorted-array

    • source from:https://leetcode-cn.com/problems/merge-sorted-array/
  • palindrome-partitioning-ii

    • 状态二维dp+值一维dp
    • 半三角dp修正
    • source from:https://leetcode-cn.com/problems/palindrome-partitioning-ii/
  • majority-element

    • source from:https://leetcode-cn.com/problems/majority-element/
  • product-of-array-except-self

    • 两侧分别扫描一遍

    • source from:https://leetcode-cn.com/problems/product-of-array-except-self/

  • move-zeroes

    • source from:https://leetcode-cn.com/problems/move-zeroes/
  • find-the-duplicate-number

    • 抽屉原理+环+快慢指针

    • source from:https://leetcode-cn.com/problems/find-the-duplicate-number/

  • find-all-duplicates-in-an-array

    • 和上面一样,核心是每次对abs(nums[idx])-1的处理获得nums的index很有意思

    • source from:https://leetcode-cn.com/problems/find-all-duplicates-in-an-array/

  • find-all-numbers-disappeared-in-an-array

    • nums[abs(nums[idx]) - 1] = -abs(nums[abs(nums[idx]) - 1]),两个abs保证了所有存在的idx都被置负了

    • source from:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/

  • max-consecutive-ones

    • source from:https://leetcode-cn.com/problems/max-consecutive-ones/
  • teemo-attacking

    • source from:https://leetcode-cn.com/problems/teemo-attacking/
  • SubarraySumEqualsK

    • source from:https://leetcode-cn.com/problems/subarray-sum-equals-k/
  • shortest-unsorted-continuous-subarray

    • source from:https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray/
  • can-place-flowers

    • source from:https://leetcode-cn.com/problems/can-place-flowers/
  • valid-triangle-number

  • valid-triangle-number

    • source from:https://leetcode-cn.com/problems/valid-triangle-number/
  • task-scheduler

    • 理解一下,出现次数最多的那个字母(出现次数-1)x时间窗口及为最小次数,剩余要考虑的是都为最多次数的字母数

    • source from:https://leetcode-cn.com/problems/task-scheduler/

  • maximum-average-subarray-i

    • source from:https://leetcode-cn.com/problems/maximum-average-subarray-i/
  • maximum-swap

  • maximum-swap

    • source from:https://leetcode-cn.com/problems/maximum-swap/
  • find-pivot-index

  • find-pivot-index

    • source from:https://leetcode-cn.com/problems/find-pivot-index/
  • largest-number-at-least-twice-of-others

    • source from:https://leetcode-cn.com/problems/largest-number-at-least-twice-of-others/
  • transpose-matrix

    • source from:https://leetcode-cn.com/problems/transpose-matrix/
  • AdvantageShuffle

    • 这道题的难点在于耗时,贪心算法即可,田忌赛马,可以看下

    • source from:https://leetcode-cn.com/problems/advantage-shuffle/

  • sort-array-by-parity-ii

    • source from:https://leetcode-cn.com/problems/sort-array-by-parity-ii/
  • subarray-sums-divisible-by-k

  • subarray-sums-divisible-by-k

    • 前缀和技巧题,主要是要知道a-b能被k整除,那么有a%k==b%k
    • source from:https://leetcode-cn.com/problems/subarray-sums-divisible-by-k/
  • squares-of-a-sorted-array

    • source from:https://leetcode-cn.com/problems/squares-of-a-sorted-array/
  • add-to-array-form-of-integer

    • source from:https://leetcode-cn.com/problems/add-to-array-form-of-integer/
  • binary-prefix-divisible-by-5

    • source from:https://leetcode-cn.com/problems/binary-prefix-divisible-by-5/
  • HeightChecker

    • source from:https://leetcode-cn.com/problems/height-checker/
  • find-n-unique-integers-sum-up-to-zero

  • find-n-unique-integers-sum-up-to-zero

    • source from:https://leetcode-cn.com/problems/find-n-unique-integers-sum-up-to-zero/

动态规划

  • regular-expression-matching

    • 分N种情况讨论状态转移矩阵。复杂:1、转移矩阵,2、初始化逻辑
    • source from:https://leetcode-cn.com/problems/regular-expression-matching/
  • jump-game-ii

    • source from:https://leetcode-cn.com/problems/jump-game-ii/
  • longest-palindromic-substring

    • 中心展开,从中间值往两边展开,判断展开终止点的长度

    • source from:https://leetcode-cn.com/problems/longest-palindromic-substring/

  • maximum-subarray

    • 简单递归

    • source from:https://leetcode-cn.com/problems/maximum-subarray/

  • unique-paths

    • source from:https://leetcode-cn.com/problems/unique-paths/
  • unique-paths-ii

  • unique-paths-ii

    • 最优路径下的dp

    • source from:https://leetcode-cn.com/problems/unique-paths-ii/

  • minimum-path-sum

    • 非常基础简单的动态规划问题,适合理解动态规范的想法

    • source from:https://leetcode-cn.com/problems/minimum-path-sum/

  • maximal-rectangle

    • source from:https://leetcode-cn.com/problems/maximal-rectangle/
  • gray-code

    • dp
    • source from:https://leetcode-cn.com/problems/gray-code/
  • decode-ways

    • 状态转移方程式dp[i] = dp[i-1]+dp[i-2],复杂在什么时候加前项什么时候加后项,什么时候加两项,0的位置的考虑

    • source from:https://leetcode-cn.com/problems/decode-ways/

  • distinct-subsequences

    • 和文本编辑距离的思路很像
    • source from:https://leetcode-cn.com/problems/distinct-subsequences/
  • triangle

    • source from:https://leetcode-cn.com/problems/triangle/
  • best-time-to-buy-and-sell-stock

  • best-time-to-buy-and-sell-stock

    • source from:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
  • best-time-to-buy-and-sell-stock-ii

  • best-time-to-buy-and-sell-stock-ii

    • source from:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/
  • best-time-to-buy-and-sell-stock-iii

    • source from:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/
  • word-break

    • 第一轮用的traceback,时间复杂度是n的n次方,扑gai;然后我想了下,既然可以考虑回溯,为什么不能递归,其实只要把方程:flag[j] = flag[i]+s[i:j] in wordDict 这个想到就行,这个算是是像加限制性条件的dp,比如20届拼多多校招,多多鸡砍树问题

    • source from:https://leetcode-cn.com/problems/word-break/

  • maximum-product-subarray

    • 需要存一个max和min,来做条件判断

    • source from:https://leetcode-cn.com/problems/maximum-product-subarray/

  • dungeon-game

    • 反向递归

    • source from:https://leetcode-cn.com/problems/dungeon-game/

  • best-time-to-buy-and-sell-stock-iv

    • source from:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iv/
  • house-robber

    • dp算法很经典的一道题

    • source from:https://leetcode-cn.com/problems/house-robber/

  • house-robber-ii

    • source from:https://leetcode-cn.com/problems/house-robber-ii/
  • maximal-square

    • source from:https://leetcode-cn.com/problems/maximal-square/
  • Ugly Number II

    • source from:https://leetcode-cn.com/problems/ugly-number-ii/
  • perfect-squares

  • perfect-squares

    • 双循环的dp,同样的思路python会超时,Java不会

    • source from:https://leetcode-cn.com/problems/perfect-squares/

  • longest-increasing-subsequence

  • longest-increasing-subsequence

    • dp和递归理解的好题目,值得看

    • source from:https://leetcode-cn.com/problems/longest-increasing-subsequence/

  • range-sum-query-immutable

    • source from:https://leetcode-cn.com/problems/range-sum-query-immutable/
  • best-time-to-buy-and-sell-stock-with-cooldown

    • dp的高难题,代码中带完整带解题方法

    • source from:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/

  • burst-balloons

    • dp的超高难题,代码中带完整带解题方法

    • source from:https://leetcode-cn.com/problems/burst-balloons/

  • coin-change

    • 斐波纳切动态规划

    • source from:https://leetcode-cn.com/problems/coin-change/

  • counting-bits

    • source from:https://leetcode-cn.com/problems/counting-bits/
  • integer-break

    • source from:https://leetcode-cn.com/problems/integer-break/
  • count-numbers-with-unique-digits

    • source from:https://leetcode-cn.com/problems/count-numbers-with-unique-digits/
  • split-array-largest-sum

    • source from:https://leetcode-cn.com/problems/split-array-largest-sum/
  • ones-and-zeroes

    • 01背包

    • source from:https://leetcode-cn.com/problems/ones-and-zeroes/

  • partition-equal-subset-sum

    • 01背包问题,这题主要考虑提前跳出条件

    • source from:https://leetcode-cn.com/problems/partition-equal-subset-sum/

  • target-sum

    • 01背包+递归逻辑

    • source from:https://leetcode-cn.com/problems/target-sum/

  • fibonacci-number

    • source from:https://leetcode-cn.com/problems/fibonacci-number/
  • longest-palindromic-subsequence

    • 子序列通用双循环dp,这次因为涉及反推,所以用的是倒推法
    • source from:https://leetcode-cn.com/problems/longest-palindromic-subsequence/
  • palindromic-substrings

    • 回文子串问题

    • source from:https://leetcode-cn.com/problems/palindromic-substrings/

  • Partition to K Equal Sum Subsets

  • Partition to K Equal Sum Subsets

    • 依旧是递归,区别在递归逻辑在for循环中,相当于并发了n条处理逻辑,有点像树展开

    • source from:https://leetcode-cn.com/problems/partition-to-k-equal-sum-subsets/

  • delete-and-earn

    • 核心在于bitmap+dp,与198题类似

    • source from:https://leetcode-cn.com/problems/delete-and-earn/

  • length-of-longest-fibonacci-subsequence

    • 字典进行递归,以后[i,j]作为递归条件判断
    • source from:https://leetcode-cn.com/problems/length-of-longest-fibonacci-subsequence/
  • minimum-cost-for-tickets

  • minimum-cost-for-tickets

    • source from:https://leetcode-cn.com/problems/minimum-cost-for-tickets/
  • valid-permutations-for-di-sequence

    • 爱奇艺2020届校招

    • source from:https://leetcode-cn.com/problems/valid-permutations-for-di-sequence/

  • VideoStitching

    • 贪心算法概念的比较好理解的一道题

    • source from:https://leetcode-cn.com/problems/video-stitching/

  • longest-string-chain

    • hashmap+简单dp

    • source from:https://leetcode-cn.com/problems/longest-string-chain/

  • n-th-tribonacci-number

    • 最简单的dp

    • source from:https://leetcode-cn.com/problems/n-th-tribonacci-number/

  • longest-common-subsequence

    • 子序列双循环dp

    • source from:https://leetcode-cn.com/problems/longest-common-subsequence/

  • longest-arithmetic-subsequence-of-given-difference

    • 记录状态,和跳跃游戏1一样

    • source from:https://leetcode-cn.com/problems/longest-arithmetic-subsequence-of-given-difference/


贪心算法

  • maximum-length-of-pair-chain

  • maximum-length-of-pair-chain

    • source from:https://leetcode-cn.com/problems/maximum-length-of-pair-chain/

二叉树

  • binary-tree-inorder-traversal

    • 二叉树中序遍历三种写法

    • source from:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/

  • binary-tree-level-order-traversal

    • 二叉树层序遍历,利用了队列先进先出的性质

    • source from:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/

  • maximum-depth-of-binary-tree

    • 二叉树深度计算,利用了递归性质

    • source from:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/

  • merge-two-binary-trees

    • 二叉树合并,利用了递归性质

    • source from:https://leetcode-cn.com/problems/merge-two-binary-trees/

  • diameter-of-binary-tree

    • 结点之间的最大距离,和104题的深度一样

    • source from:https://leetcode-cn.com/problems/diameter-of-binary-tree/

  • convert-bst-to-greater-tree

    • 先遍历右子树的中序遍历,面试之前一定要看,易于理解递归在二叉树中的应用

    • source from:https://leetcode-cn.com/problems/convert-bst-to-greater-tree/

  • invert-binary-tree

    • 反转树,相互对称

    • source from:https://leetcode-cn.com/problems/invert-binary-tree/

  • implement-trie-prefix-tree

    • tire 字典实现

    • source from:https://leetcode-cn.com/problems/implement-trie-prefix-tree/

  • construct-binary-tree-from-preorder-and-inorder-traversal

    • 360面试题,真有意思

    • source from:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/

  • serialize-and-deserialize-binary-tree

    • 二叉树-->list//list-->二叉树

    • source from:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/

  • lowest-common-ancestor-of-a-binary-tree

    • left if right is None else right if left is None else root

    • source from:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/

  • lowest-common-ancestor-of-a-binary-search-tree

    • 和上面一题一摸一样

    • source from:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/

  • unique-binary-search-trees

    • 动态规划

    • source from:https://leetcode-cn.com/problems/unique-binary-search-trees/

  • symmetric-tree

    • 层次遍历

    • source from:https://leetcode-cn.com/problems/symmetric-tree/

  • validate-binary-search-tree

    • 搜索二叉树的左支<结点<右支,正好可以用中序遍历比较

    • source from:https://leetcode-cn.com/problems/validate-binary-search-tree/

  • binary-tree-maximum-path-sum

    • 类似104题、543题这种递归的方式

    • source from:https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/

  • path-sum-iii

    • dfs+两数之和

    • source from:https://leetcode-cn.com/problems/path-sum-iii/

  • unique-binary-search-trees-ii

    • unique-binary-search-trees这题思路一样,不同的是,unique-binary-search-trees用的是dp,本题用的是递归,核心和之前一样,[start,i]作为左树去递归,node(i)作为根,[i+1,end]作为右树去递归

    • source from:https://leetcode-cn.com/problems/unique-binary-search-trees-ii/

  • same-tree

    • 层序遍历改写

    • source from:https://leetcode-cn.com/problems/same-tree/

  • binary-tree-zigzag-level-order-traversal

    • 层序遍历改写

    • source from:https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/

  • recover-binary-search-tree

    • BST+中序遍历的结果是有序的,self.ans.append(root)直接加结点,而非加值了

    • source from:https://leetcode-cn.com/problems/recover-binary-search-tree/

  • house-robber-iii

    • 基于树结构+动态规划,可谓是花哨到极点了

    • source from:https://leetcode-cn.com/problems/house-robber-iii/

  • construct-binary-tree-from-inorder-and-postorder-traversal

    • construct-binary-tree-from-preorder-and-inorder-traversal类似

    • source from:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/

  • construct-binary-tree-from-preorder-and-postorder-traversal

    • construct-binary-tree-from-preorder-and-inorder-traversal类似

    • source from:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-postorder-traversal/

  • binary-tree-level-order-traversal-ii

    • 层次遍历翻版

    • source from:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/

  • convert-sorted-array-to-binary-search-tree

    • 有序数组-->平衡二叉树:二分查找+递归

    • source from:https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/

  • balanced-binary-tree

    • 判断是否为平衡二叉树,利用的是dfs+maximum-depth-of-binary-tree二叉树深度计算的方法

    • source from:https://leetcode-cn.com/problems/balanced-binary-tree/

  • minimum-depth-of-binary-tree

    • source from:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/
  • path-sum

    • source from:https://leetcode-cn.com/problems/path-sum/

    • 上面这两题在return的时候都做了是否是根结点的判断:left if root.right is None else right if root.left is None else left or right

  • path-sum-ii

    • dfs

    • source from:https://leetcode-cn.com/problems/path-sum-ii/

  • flatten-binary-tree-to-linked-list

    • 有点技巧性

    • source from:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/

  • populating-next-right-pointers-in-each-node

    • 跨结点直接的指向关系由root.next is not None产生

    • source from:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node/

  • populating-next-right-pointers-in-each-node-ii

    • 与上一次递归不同,这一次因为不知道root对应的下一层是否有空结点,所以针对上一层的判断结果进行迭代

    • source from:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii/

  • sum-root-to-leaf-numbers

    • dfs

    • source from:https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/

  • binary-tree-preorder-traversal

    • 前序遍历迭代版,技巧就是queue进栈的策略是先右后左,因为前序遍历是中左右,进栈越早出栈越晚

    • source from:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/

  • binary-tree-postorder-traversal

    • 巧妙的解法:宽度搜索+逆序出栈==后序输出。另外,这份代码在node = queue.pop()-->node = queue.pop(0),加个0就是层序遍历

    • source from:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/

以上两题加binary-tree-inorder-traversal都是迭代的解法,前序中序写的比较中规中矩,后序写的真的是惊艳

  • binary-tree-right-side-view

    • 层序遍历

    • source from:https://leetcode-cn.com/problems/binary-tree-right-side-view/

  • add-and-search-word-data-structure-design

    • Tire树很经典的一道题

    • source from::https://leetcode-cn.com/problems/add-and-search-word-data-structure-design/

  • count-complete-tree-nodes

    • source from:https://leetcode-cn.com/problems/count-complete-tree-nodes/
  • kth-smallest-element-in-a-bst

    • source from:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/
  • binary-search-tree-iterator

    • 借鉴了上一题中的generation的写法,我觉得非常适合业务中真实使用

    • source from:https://leetcode-cn.com/problems/binary-search-tree-iterator/

  • binary-tree-paths

    • dfs

    • source from:https://leetcode-cn.com/problems/binary-tree-paths/

  • sum-of-left-leaves

    • 限制性条件下的二叉树遍历计算查找,迭代要比计算更加高效

    • source from:https://leetcode-cn.com/problems/sum-of-left-leaves/

  • serialize-and-deserialize-bst

    • 前序遍历保存,二叉搜索树的中序遍历为升序列,两则可以恢复原树

    • source from:https://leetcode-cn.com/problems/serialize-and-deserialize-bst/

  • delete-node-in-a-bst

    • 看子节点的是否为None,分情况讨论

    • source from:https://leetcode-cn.com/problems/delete-node-in-a-bst/

  • find-mode-in-binary-search-tree

    • 直接遍历统计

    • source from:https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/

  • find-bottom-left-tree-value

    • source from:https://leetcode-cn.com/problems/find-bottom-left-tree-value/
  • find-largest-value-in-each-tree-row

    • source from:https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/
  • minimum-absolute-difference-in-bst

    • source from:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/
  • binary-tree-tilt

    • source from:https://leetcode-cn.com/problems/binary-tree-tilt/
  • subtree-of-another-tree

    • 递归求解,好题目

    • source from:https://leetcode-cn.com/problems/subtree-of-another-tree/

  • most-frequent-subtree-sum

    • binary-tree-tilt一样,计算每个结点的子树之和。

    • source from:https://leetcode-cn.com/problems/most-frequent-subtree-sum/

  • add-one-row-to-tree

    • 递归直接修改树的实现,爬楼梯的翻版

    • source from:https://leetcode-cn.com/problems/add-one-row-to-tree/

  • average-of-levels-in-binary-tree

    • source from:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/
  • find-duplicate-subtrees

    • 套路总结

    • source from:https://leetcode-cn.com/problems/find-duplicate-subtrees/

  • two-sum-iv-input-is-a-bst

    • source from:https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst/
  • maximum-binary-tree

    • source from:https://leetcode-cn.com/problems/maximum-binary-tree/
  • n-ary-tree-level-order-traversal

    • source from:https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/
  • maximum-depth-of-n-ary-tree

    • source from:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree/
  • maximum-width-of-binary-tree

    • source from:https://leetcode-cn.com/problems/maximum-width-of-binary-tree/
  • trim-a-binary-search-tree

    • 如果接一个root = self.trimBST相当于对结点做一个覆盖,也就是直接修改树

    • source from:https://leetcode-cn.com/problems/trim-a-binary-search-tree/

  • second-minimum-node-in-a-binary-tree

    • log(h)的跳出条件的递归写法

    • source from:https://leetcode-cn.com/problems/second-minimum-node-in-a-binary-tree/

  • longest-univalue-path

    • 逻辑理解的递归

    • source from:https://leetcode-cn.com/problems/longest-univalue-path/

  • n-ary-tree-preorder-traversal

    • source from:https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/
  • n-ary-tree-postorder-traversal

    • source from:https://leetcode-cn.com/problems/n-ary-tree-postorder-traversal/
  • search-in-a-binary-search-tree

    • source from:https://leetcode-cn.com/problems/search-in-a-binary-search-tree/
  • insert-into-a-binary-search-tree

    • source from:https://leetcode-cn.com/problems/insert-into-a-binary-search-tree/
  • minimum-distance-between-bst-nodes

    • source from:https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/
  • binary-tree-pruning

    • 先递归到底层,然后在判断是否可以被修剪,修剪条件就是root.val == 0 and not root.left and not root.right:

    • source from:https://leetcode-cn.com/problems/binary-tree-pruning/

  • smallest-subtree-with-all-the-deepest-nodes

    • 构造了数据对[root,depth],用depth判断深度,用root返回depth对应的root

    • source from:https://leetcode-cn.com/problems/smallest-subtree-with-all-the-deepest-nodes/

  • leaf-similar-trees

    • source from:https://leetcode-cn.com/problems/leaf-similar-trees/
  • all-possible-full-binary-trees

    • 基于树的动态规划,考前必看

    • source from:https://leetcode-cn.com/problems/all-possible-full-binary-trees/

  • increasing-order-search-tree

    • source from:https://leetcode-cn.com/problems/increasing-order-search-tree/
  • range-sum-of-bst

    • source from:https://leetcode-cn.com/problems/range-sum-of-bst/
  • flip-equivalent-binary-trees

    • source from:https://leetcode-cn.com/problems/flip-equivalent-binary-trees/
  • check-completeness-of-a-binary-tree

    • 层次遍历,出现空之后不能再出现结点

    • source from:https://leetcode-cn.com/problems/check-completeness-of-a-binary-tree/

  • univalued-binary-tree

    • source from:https://leetcode-cn.com/problems/univalued-binary-tree/
  • distribute-coins-in-binary-tree

    • 金币题,题目有点难理解,算得是每个结点的多余量,这题和jump-game神似

    • source from:https://leetcode-cn.com/problems/distribute-coins-in-binary-tree/

  • cousins-in-binary-tree

    • 这题是结合了父结点+子节点递归,利用depth保存层数,parent保存子结点对应的父结点

    • source from:https://leetcode-cn.com/problems/cousins-in-binary-tree/

  • construct-binary-search-tree-from-preorder-traversal

    • source from:https://leetcode-cn.com/problems/construct-binary-search-tree-from-preorder-traversal/
  • sum-of-root-to-leaf-binary-numbers

    • ^在python里面是抑或,不是次方

    • source from:https://leetcode-cn.com/problems/sum-of-root-to-leaf-binary-numbers/

  • maximum-difference-between-node-and-ancestor

    • source from:https://leetcode-cn.com/problems/maximum-difference-between-node-and-ancestor/
  • delete-nodes-and-return-forest

    • 复杂的dfs,在dfs的过程中对树进行修正和保存,有点难

    • source from:https://leetcode-cn.com/problems/delete-nodes-and-return-forest/

  • lowest-common-ancestor-of-deepest-leaves

    • source from:https://leetcode-cn.com/problems/lowest-common-ancestor-of-deepest-leaves/
  • recover-a-tree-from-preorder-traversal

    • hashmap存结点,每次更新

    • source from:https://leetcode-cn.com/problems/recover-a-tree-from-preorder-traversal/


深度遍历

  • number-of-islands

    • 回溯/DFS
    • source from:https://leetcode-cn.com/problems/number-of-islands/
  • increasing-subsequences

  • increasing-subsequences

    • source from:https://leetcode-cn.com/problems/increasing-subsequences/
  • generate-parentheses

    • dfs
    • source from:https://leetcode-cn.com/problems/generate-parentheses/
  • combination-sum

    • dfs,组合题型1
    • source from:https://leetcode-cn.com/problems/combination-sum/
  • combination-sum-ii

    • dfs,组合题型2,index>start保证了双跳跃逻辑,很nice
    • source from:https://leetcode-cn.com/problems/combination-sum-ii/
  • subsets-ii

    • dfs,全排列升级版
    • source from:https://leetcode-cn.com/problems/subsets-ii/
  • combination-sum-iii

    • dfs,组合题型3
    • source from:https://leetcode-cn.com/problems/combination-sum-iii/
  • permutation-sequence

    • dfs,当迭代轮数超过一次完整循环的值的时候,直接跳过
    • source from:https://leetcode-cn.com/problems/permutation-sequence/
  • combinations

    • source from:https://leetcode-cn.com/problems/combinations/
  • coin-change-2

    • dfs
    • source from:https://leetcode-cn.com/problems/coin-change-2/
  • maximum-length-of-a-concatenated-string-with-unique-characters

  • maximum-length-of-a-concatenated-string-with-unique-characters

    • dfs
    • source from:https://leetcode-cn.com/problems/maximum-length-of-a-concatenated-string-with-unique-characters/

  • Valid Parentheses

    • source from:https://leetcode-cn.com/problems/valid-parentheses/
  • evaluate-reverse-polish-notation

    • 栈,亮点在python 中对负数取整数部分如何操作

    • source from:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/

  • min-stack

    • 辅助栈,不需要排序,仅需要知道当前最小即可

    • source from:https://leetcode-cn.com/problems/min-stack/

  • decode-string

    • 出入栈题,有点难想到

    • source from:https://leetcode-cn.com/problems/decode-string/

  • daily-temperatures

    • source from:https://leetcode-cn.com/problems/daily-temperatures/
  • remove-all-adjacent-duplicates-in-string

    • source from:https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/

二分搜索

  • divide-two-integers

    • 位运算

    • source from:https://leetcode-cn.com/problems/divide-two-integers/

  • powx-n

    • 最简单的递归,和快排,斐波纳切数列一致的写法

    • source from:https://leetcode-cn.com/problems/powx-n/

  • find-minimum-in-rotated-sorted-array

  • find-minimum-in-rotated-sorted-array

    • source from:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/
  • find-minimum-in-rotated-sorted-array-ii

  • find-minimum-in-rotated-sorted-array-ii

    • source from:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/
  • Searcha2DMatrixII

    • 这题其实可以从右上角开始查找,会更快

    • source from::https://leetcode.com/problems/search-a-2d-matrix-ii/

  • IntersectionofTwoArrays

    • source from:https://leetcode-cn.com/problems/intersection-of-two-arrays/
  • split-array-largest-sum

    • 二分搜索,亮点在分组最大和变成了原数组的[max(原数组),sum(原数组))

    • source from:https://leetcode-cn.com/problems/split-array-largest-sum/

  • binary-search

    • source from:https://leetcode-cn.com/problems/binary-search/
  • koko-eating-bananas

  • koko-eating-bananas

    • source from:https://leetcode-cn.com/problems/koko-eating-bananas/

回溯

  • Letter Combinations of a Phone Number

  • LetterCombinationsofaPhoneNumber

    • 这题用了dp和递归两种方法,dp更好理解也很Pythonic,递归则更加通用

    • 盖题递归位置在循环中,很有意思

    • source from:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/

  • permutations

    • 递归

    • source from:https://leetcode-cn.com/problems/permutations/

  • permutations-ii

    • 简单的回溯算法

    • source from:https://leetcode-cn.com/problems/permutations-ii/

  • palindrome-partitioning

    • 地址和值;已经用ansValue用的是内存地址,时刻在变,所以要new ArrayList<String>(ansValue)固定值使其不变

    • 回溯的剔除;

    • source from:https://leetcode-cn.com/problems/palindrome-partitioning/

  • additive-number

    • source from:https://leetcode-cn.com/problems/additive-number/
  • split-array-into-fibonacci-sequence

    • source from:https://leetcode-cn.com/problems/split-array-into-fibonacci-sequence/
  • palindrome-pairs

    • source from:https://leetcode-cn.com/problems/palindrome-pairs/

链表

  • AddTwoNumbers

    • source from:https://leetcode-cn.com/problems/add-two-numbers/
  • remove-nth-node-from-end-of-list

    • 链表很经典的一道题

    • source from::https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/

  • Merge Two Sorted Lists

    • source from:https://leetcode-cn.com/problems/merge-two-sorted-lists/
  • Swap Nodes in Pairs

    • 递归算法,讲的很详细,递归复习专用

    • 该题递归在函数中间位置,很有意思

    • source from:https://leetcode-cn.com/problems/swap-nodes-in-pairs/

  • RemoveLinkedListElements

    • 协助理解链表里面的head = head, head.next = head.next.next

    • source from:https://leetcode-cn.com/problems/remove-linked-list-elements/

  • reverse-linked-list

    • 递归在中间,简单题,对比上面的24题可以对比着看

    • source from:https://leetcode-cn.com/problems/reverse-linked-list/

  • reverse-nodes-in-k-group

    • 翻转链表用的是迭代,参考206题reverse-linked-list
    • 交换参考的是24题Swap Nodes in Pairs
    • source from:https://leetcode-cn.com/problems/reverse-nodes-in-k-group/
    • 深入理解地址和值
  • palindrome-linked-list

    • source from:https://leetcode-cn.com/problems/palindrome-linked-list/
  • linked-list-cycle

    • 快慢指针,类似题型find-the-duplicate-number
    • source from:https://leetcode-cn.com/problems/linked-list-cycle/
  • linked-list-cycle-ii

    • 快慢指针,类似题型find-the-duplicate-number
    • source from:https://leetcode-cn.com/problems/linked-list-cycle-ii/
  • intersection-of-two-linked-lists

    • source from:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/
    • 短链表+长链表<-->长链表+短链表,同等初始的结尾即为交点
  • sort-list

    • source from:https://leetcode-cn.com/problems/sort-list/
    • 并归排序+链表
  • merge-k-sorted-lists

    • source from:https://leetcode-cn.com/problems/merge-k-sorted-lists/
    • 和上一个很像,并归排序+链表
    • 快排按照标值二分,小的在前大的在后,而归并则是按照下标二分,再分别对两个部分归并排序,先分后和,在和的过程中排序
  • rotate-list

    • source from:https://leetcode-cn.com/problems/rotate-list/
  • remove-duplicates-from-sorted-list-ii

    • source from:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/
    • 建立一个哨兵指针,每次对比cur和cur.next的val是否一致
  • remove-duplicates-from-sorted-list

    • source from:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/
    • 上面一条的简单版本
  • partition-list

    • source from:https://leetcode-cn.com/problems/partition-list/
  • reverse-linked-list-ii

    • source from:https://leetcode-cn.com/problems/reverse-linked-list-ii/
    • prev.next为反转后的尾结点,正好可以接剩余结点,非常精彩
  • convert-sorted-list-to-binary-search-tree

    • source from:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree/
    • 反转链表reverse-linked-list + 平衡二叉树balanced-binary-tree
  • reorder-list

    • source from:https://leetcode-cn.com/problems/reorder-list/
    • 反转链表reverse-linked-list
  • insertion-sort-list

    • source from:https://leetcode-cn.com/problems/insertion-sort-list/
    • 这题和remove-duplicates-from-sorted-list-ii类似,需要不停的从head结点找到比当前结点.next.val要小的结点位置
    • 链表删结点方法
  • delete-node-in-a-linked-list

    • source from:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/
    • 一行但是非常技巧
  • odd-even-linked-list

    • source from:https://leetcode-cn.com/problems/odd-even-linked-list/
  • add-two-numbers-ii

    • source from:https://leetcode-cn.com/problems/add-two-numbers-ii/
    • 双栈+链表
  • split-linked-list-in-parts

    • source from:https://leetcode-cn.com/problems/split-linked-list-in-parts/
  • flatten-a-multilevel-doubly-linked-list

    • source from:https://leetcode-cn.com/problems/flatten-a-multilevel-doubly-linked-list/
  • linked-list-components

    • source from:https://leetcode-cn.com/problems/linked-list-components/
  • linked-list-components

    • source from:https://leetcode-cn.com/problems/linked-list-components/
  • middle-of-the-linked-list

    • source from:https://leetcode-cn.com/problems/middle-of-the-linked-list/
  • next-greater-node-in-linked-list

    • source from:https://leetcode-cn.com/problems/next-greater-node-in-linked-list/
  • remove-zero-sum-consecutive-nodes-from-linked-list

    • source from:https://leetcode-cn.com/problems/remove-zero-sum-consecutive-nodes-from-linked-list/
    • 前缀和+递归,面试前必看

  • kth-largest-element-in-an-array

    • 加速的地方在于,维护好容量为k的小根堆之后,只需要保证根堆的根结点最小即可。min_heap(k_min, k, 0)

    • source from:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/

  • sliding-window-maximum

    • 双端队列题目,用队列保留一个递减序列

    • source from:https://leetcode-cn.com/problems/sliding-window-maximum/

  • top-k-frequent-elements

    • 求最大:小根堆;求最小:大根堆。因为只需要保证最大最小的k个值在堆内即可,无需遍历堆。 根堆输出的时候,每次交换根堆根结点到最后,小根堆的化,数组越靠后越小,相当于降序排列;大根堆的话,数组越往后越大,相当于升序排列。

    • source from:https://leetcode-cn.com/problems/top-k-frequent-elements/

  • DistantBarcodes

    • source from:https://leetcode-cn.com/problems/distant-barcodes/

双指针

  • LongestSubstringWithoutRepeatingCharacters

    • 滑动窗口

    • source from:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/

  • summary-ranges

  • summary-ranges

    • 数组当做双指针的一种方式

    • source from:https://leetcode-cn.com/problems/summary-ranges/

  • boats-to-save-people

    • 双指针

    • source from:https://leetcode-cn.com/problems/boats-to-save-people/

  • fruit-into-baskets

    • 双指针

    • source from:https://leetcode-cn.com/problems/fruit-into-baskets/

  • minimum-window-substring

    • 双指针+滑动窗口,模板要记得

    • source from:https://leetcode-cn.com/problems/minimum-window-substring/

  • is-subsequence

    • 双指针+滑动窗口,模板要记得

    • source from:https://leetcode-cn.com/problems/is-subsequence/

  • minimum-size-subarray-sum

    • 子集问题,双指针

    • source from:https://leetcode-cn.com/problems/minimum-size-subarray-sum/

  • longest-chunked-palindrome-decomposition

    • 回文问题,双指针

    • source from:https://leetcode-cn.com/problems/longest-chunked-palindrome-decomposition/

  • shortest-palindrome

    • 回文问题,双指针

    • source from:https://leetcode-cn.com/problems/shortest-palindrome/

  • subarray-product-less-than-k

  • subarray-product-less-than-k

    • 区间边界解决重复,双指针

    • source from:https://leetcode-cn.com/problems/subarray-product-less-than-k/

  • max-consecutive-ones-iii

  • max-consecutive-ones-iii

    • source from:https://leetcode-cn.com/problems/max-consecutive-ones-iii/
  • replace-the-substring-for-balanced-string

    • 最优子串,双指针

    • source from:https://leetcode-cn.com/problems/replace-the-substring-for-balanced-string/


字符串

  • Roman to Integer

    • source from:https://leetcode-cn.com/problems/roman-to-integer/
  • Longest Common Prefix

    • source from:https://leetcode-cn.com/problems/longest-common-prefix/
  • detect-capital

    • source from:https://leetcode-cn.com/problems/detect-capital/
  • custom-sort-string

    • source from:https://leetcode-cn.com/problems/custom-sort-string/
  • goat-latin

    • source from:https://leetcode-cn.com/problems/goat-latin/
  • orderly-queue

    • 有点冒泡排序的意思

    • source from:https://leetcode-cn.com/problems/orderly-queue/

  • ReverseOnlyLetters

    • source from:https://leetcode-cn.com/problems/reverse-only-letters/
  • longest-uncommon-subsequence-i

    • source from:https://leetcode-cn.com/problems/longest-uncommon-subsequence-i/
  • longest-continuous-increasing-subsequence

    • source from:https://leetcode-cn.com/problems/longest-continuous-increasing-subsequence/
  • sort-characters-by-frequency

  • sort-characters-by-frequency

    • source from:https://leetcode-cn.com/problems/sort-characters-by-frequency/

递归

  • reverse-string-ii

  • reverse-string-ii

    • source from:https://leetcode-cn.com/problems/reverse-string-ii/
  • K-thSymbolinGrammar

  • K-th Symbol in Grammar

    • python用了最简单的递归表示,把结果表示出来再做,比较慢,所以加了@functools.lru_cache(maxsize=128, typed=False)对结果进行缓存

    • source from:https://leetcode-cn.com/problems/k-th-symbol-in-grammar/

  • valid-tic-tac-toe-state

    • 直接罗列全情况,排除一下就行

    • source from:https://leetcode-cn.com/problems/valid-tic-tac-toe-state/

  • valid-palindrome-ii

    • source from:https://leetcode-cn.com/problems/valid-palindrome-ii/

蓄水池抽样

  • random-pick-index

    • 蓄水池抽烟,randint(0,cnt)控制了每次被抛弃的概率为1/(1+cnt)

    • source from:https://leetcode-cn.com/problems/random-pick-index/

  • linked-list-random-node

    • source from:https://leetcode-cn.com/problems/linked-list-random-node/

数学

  • reverse Integera

    • source from:https://leetcode-cn.com/problems/reverse-integer/
  • Palindrome Number

    • source from:https://leetcode-cn.com/problems/palindrome-number/
  • ExcelSheetColumnNumber

    • source from:https://leetcode-cn.com/problems/excel-sheet-column-number/
  • UglyNumber

    • source from:https://leetcode-cn.com/problems/ugly-number/
  • reach-a-number

    • source from:https://leetcode-cn.com/problems/reach-a-number/
  • ChalkboardXORGame

    • 逻辑鬼才的题目

    • source from:https://leetcode-cn.com/problems/chalkboard-xor-game/

  • LargestTriangleArea

    • 任给三点,三角形面积等于abs(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))/2

    • source from:https://leetcode-cn.com/problems/largest-triangle-area/

  • consecutive-numbers-sum

    • (n-m)(n+m+1)=2N,a=n-m,b=n+m+1,a+b=2n+1,b-a=2m+1,所以a*b=2N,a,b一奇一偶

    • source from:https://leetcode-cn.com/problems/consecutive-numbers-sum/

  • surface-area-of-3d-shapes

    • 透视图角度

    • source from:https://leetcode-cn.com/problems/surface-area-of-3d-shapes/

  • greatest-common-divisor-of-strings

    • gcd,最大公约数;辗转相除法复习

    • source from:https://leetcode-cn.com/problems/greatest-common-divisor-of-strings/

  • prime-palindrome

    • 素数+回文
    • source from:https://leetcode-cn.com/problems/prime-palindrome/
  • find-the-closest-palindrome

    • 罗列情况
    • source from:https://leetcode-cn.com/problems/find-the-closest-palindrome/
  • repeated-substring-pattern

    • 2N-2>N
    • source from:https://leetcode-cn.com/problems/repeated-substring-pattern/
  • sum-of-square-numbers

  • sum-of-square-numbers

    • 平方数之和
    • 二分查找
    • source from:https://leetcode-cn.com/problems/sum-of-square-numbers/

位运算

  • SingleNumber

    • 这题有数学解法和位解法两种,都很值得看一下

    • source from:https://leetcode.com/problems/single-number/description/

  • single-number-ii

  • single-number-ii

    • 知识点1:设计一个逻辑运算,使满足存在两个变量a和b,当遍历nums的时候,对于重复元素x,第一次碰到x的时候,我们会将x赋给a,第二次碰到后再赋给b,第三次则全量抵消

    • 知识点2:x&~x=0

    • source from:https://leetcode-cn.com/problems/single-number-ii/

  • reverse-bits

    • source from:https://leetcode-cn.com/problems/reverse-bits/
  • sum-of-two-integers

    • source from:https://leetcode-cn.com/problems/sum-of-two-integers/
  • hamming-distance

    • source from:https://leetcode-cn.com/problems/hamming-distance/

哈希表

  • JewelsandStones

    • source from:https://leetcode-cn.com/problems/jewels-and-stones/
  • find-all-anagrams-in-a-string

    • 滑动窗口去解决字符串匹配问题

    • source from:https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/

  • distribute-candies

  • distribute-candies

    • source from:https://leetcode-cn.com/problems/distribute-candies/
  • uncommon-words-from-two-sentences

    • source from:https://leetcode-cn.com/problems/uncommon-words-from-two-sentences/
  • substring-with-concatenation-of-all-words

    • hash对比
    • source from:https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/
  • longest-harmonious-subsequence

    • source from:https://leetcode-cn.com/problems/longest-harmonious-subsequence/
  • number-of-matching-subsequences

    • source from:https://leetcode-cn.com/problems/number-of-matching-subsequences/
  • n-repeated-element-in-size-2n-array

  • n-repeated-element-in-size-2n-array

  • n-repeated-element-in-size-2n-array

    • source from:https://leetcode-cn.com/problems/n-repeated-element-in-size-2n-array/

贪心算法

  • gas-station

  • gas-station

    • source from:https://leetcode-cn.com/problems/gas-station/
  • candy

    • 转转2020届校招

    • 分发糖果,左右各扫一遍取max

    • source from:https://leetcode-cn.com/problems/candy/

  • queue-reconstruction-by-height

    • 原题说的是前面大于等于当前身高的,所以插矮个子不会影响排序

    • source from:https://leetcode-cn.com/problems/queue-reconstruction-by-height/

  • two-city-scheduling

    • source from:https://leetcode-cn.com/problems/two-city-scheduling/
  • LemonadeChange

    • source from:https://leetcode-cn.com/problems/lemonade-change/

分治算法

  • beautiful-array

  • beautiful-array

    • source from:https://leetcode-cn.com/problems/beautiful-array/

桶排序

  • maximum-gap

    • 分桶,亮点在于分N+1个桶,保证一定有一个空桶,空桶的存在保证最大间隔在桶之间,不需要再去比桶内值

    • source from:https://leetcode-cn.com/problems/maximum-gap/


其他

  • NimGame

    • 规律题,数学归纳

    • source from:https://leetcode-cn.com/problems/nim-game/

  • LexicographicalNumbers

    • 字典排序,用了python特性,也同时整理基础概念,值得去看

    • source from:https://leetcode-cn.com/problems/lexicographical-numbers/

  • IncreasingTripletSubsequence

    • such that arr[i] < arr[j] < arr[k] given 0 ≤ i < j < k ≤ n-1 else return false,其中只要保证固定住最小和最大,不断降低最小值的下限,使得比最小值要大的值可以尽可能的接近最小值,从而更容易找到比接近最小值的值

    • source from:https://leetcode-cn.com/problems/increasing-triplet-subsequence/

  • relative-ranks

    • source from:https://leetcode-cn.com/problems/relative-ranks/
  • largest-number

    • 这题技巧题,理解sorted中的cmp和key的作用,key是sorted元素判断依据的接受入口,而接收值需要调用functools中的cmp_to_key进行包装,python2不用这么复杂

    • source from:https://leetcode-cn.com/problems/largest-number/

  • lru-cache

    • source from:https://leetcode-cn.com/problems/lru-cache/