LeetCode 刷题总结

最近找工作,免不了看CC150 刷 LeetCode 来练手,练习之余也向各路大神 系统并且深入的学习、巩固一下算法知识。
一. 线性表
1. 数组
    Remove Duplicates from Sorted Array
    Remove Duplicates from Sorted Array II
    Search in Rotated Sorted Array
    Search in Rotated Sorted Array II
    Median of Two Sorted Arrays
    Longest Consecutive Sequence
    3Sum
    3Sum Closet
    4Sum
    Remove Element
    Next Permutation
    Permutation Sequence
    Valid Sudoku
    Trapping Rain Water
    Rotate Image
    Plus One
    Climbing Stairs
    Gray Code
    Set Matrix Zeroes
    Gas Station
    Candy
    Single Member
    Single Member II
2. 单链表
    Add Two Numbers
    Reverse Linked List II
    Partition List
    Remove Duplicates from Sorted List
    Remove Duplicates from Sorted List II
    Rotate List
    Remove Nth Node From End of List
    Swap Nodes in Pairs
    Reverse Nodes in k-Group
    Copy List with Random Pointer
    Linked List Cycle
    Linked List Cycle II
    Reorder List
二. 字符串
    Valid Palindrome
    Implement strStr()
    String to Integer(atoi)
    Add Binary
    Longest Palindromic Substring
    Regular Expression Matching
    Wildcard Matching
    Longest Common Prefix
    Valid Number
    Integer to Roman
    Roman to Integer
    Count and Say
    Anagrams
    Simplify Path
    Length of Last Word
三. 栈和队列
1. 栈
    Valid Parentheses
    Longest Valid parentheses
    Largest Rectangle in Histogram
2. 队列
四. 树
1. 二叉树的遍历
    Binary Tree Preorder Traversal
    Binary Tree Inorder Traversal
    Binary Tree Postorder Traversal
    Binary Tree Level Order Traversal
    Binary Tree Level Order Traversal II
    Binary Tree Zigzag Level Order Traversal
    Recover Binary Search Tree
    Same Tree
    Symmetric Tree
    Balanced Binary Tree
    Flatten Binary Tree to Linked List
    Populating Next Right Pointers in Each Node II
2. 二叉树的构建
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
3. 二叉查找树
    Unique Binary Search Trees
    Unique Binary Search Trees II
    Validate Binary Search Tree
    Convert Sorted Array to Binary Search Tree
    Convert Sorted List to Binary Search Tree
4. 二叉树的递归
    Minimum Depth of Binary Tree
    Maximum Depth of Binary Tree
    Path Sum
    Path Sum II
    Binary Tree Maximum Path Sum
    Populating next Right Pointers in Each Node
    Sum Root to Leaf Numbers
五. 排序
    Merge Sorted Array
    Merge Two Sorted Lists
    Merge k Sorted Lists
    First Missing Positive
    Sort Colors
六. 查找
    Search for a Range
    Search Insert Position
    Search a 2D Matrix
七. 暴力枚举法
    Subsets
        递归
        迭代  
    Subsets II
        递归
        迭代
    Permutations
        next_permutation()
        重新实现next_permutation()
        递归
    Permutations II
        next_permutation()
        重新实现next_permutation()
        递归
    Combinations
        递归
        迭代
    Letter Combinations of a Phone Number
        递归
        迭代
八. 广度优先搜索
    Word Ladder
    Word Ladder II
    Surrounded Regions
九. 深度优先搜索
    Palindrome Partitioning
    Unique Paths
    Unique Paths II
    N-Queens
    N-Queens II
    Restore IP Addresses
    Combination Sum
    Combination Sum II
    Generate Parentheses
    Sudoku Solver
    Word Search
十. 分治法
    Pow(x,n)
    Sqrt(x)
十一. 贪心法
    Jump Game
    Jump Game II
    Best Time to Buy and Sell Stock
    Best Time to Buy and Sell Stock II
    Longest Substring Without Repeating Characters
    Container With Most Water
十二. 动态规划
    Triangle
    Maximum Subarray
    Palindrome Partitioning II
    Maximal Rectangle
    BestTime to Buy and Sell Stock III
    Interleaving String
    Scramble String
    Minimum Path Sum
    Edit Distance
    Decode Ways
    Distinct Subsequences
    Word Break
    Word Break II
十三. 图
    Clone Graph
十四. 细节实现题
    Reverse Integer
    Palindrome Number
    Two Sum
    Insert Interval
    Merge Intervals
    Minimum Window Substring
    Multiply Strings
    Substring with Concatenation of All Words
    Pascal‘s Triangle
    Pascal‘s Triangle II
    Spiral Matrix
    Spiral Matrix II
    Zigzag Conversion
    Divide Two Integers
    Text Justification

时间: 2024-10-10 07:58:27

LeetCode 刷题总结的相关文章

【leetcode刷题笔记】Sum Root to Leaf Numbers

Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1->2->3 which represents the number 123. Find the total sum of all root-to-leaf numbers. For example, 1 / 2 3 T

leetcode 刷题之路 63 Binary Tree Zigzag Level Order Traversal

Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between). For example: Given binary tree {3,9,20,#,#,15,7}, 3 / 9 20 / 15 7 return its zig

leetcode 刷题之路 64 Construct Binary Tree from Inorder and Postorder Traversal

Given inorder and postorder traversal of a tree, construct the binary tree. Note: You may assume that duplicates do not exist in the tree. 给出二叉树的中序遍历和后序遍历结果,恢复出二叉树. 后序遍历序列的最后一个元素值是二叉树的根节点的值,查找该元素在中序遍历序列中的位置mid,根据中序遍历和后序遍历性质,有: 位置mid以前的序列部分为二叉树根节点左子树中

【leetcode刷题笔记】Longest Consecutive Sequence

Given an unsorted array of integers, find the length of the longest consecutive elements sequence. For example,Given [100, 4, 200, 1, 3, 2],The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4. Your algorithm should run in

【leetcode刷题笔记】Remove Duplicates from Sorted Array II

Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For example,Given sorted array A = [1,1,1,2,2,3], Your function should return length = 5, and A is now [1,1,2,2,3]. 题解: 设置两个变量:右边kepler和前向游标forward.如果当前kepeler所指的元素和

【leetcode刷题笔记】Restore IP Addresses

Given a string containing only digits, restore it by returning all possible valid IP address combinations. For example:Given "25525511135", return ["255.255.11.135", "255.255.111.35"]. (Order does not matter) 题解:深度优先搜索.用resul

【leetcode刷题笔记】Path Sum

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. For example:Given the below binary tree and sum = 22, 5 / 4 8 / / 11 13 4 / \ 7 2 1 return true, as t

【leetcode刷题笔记】Insertion Sort List

Sort a linked list using insertion sort. 题解:实现链表的插入排序. 要注意的地方就是,处理链表插入的时候尽量往当前游标的后面插入,而不要往前面插入,后者非常麻烦.所以每次利用kepeler.next.val和head.val比较大小,而不是kepeler.val和head.val比较大小,因为如果用后者,要把head指向的节点插入到kepeler指向的节点的前面,如果kepeler指向的节点是头结点,就更麻烦了. 代码如下: 1 /** 2 * Defi

【leetcode刷题笔记】Max Points on a Line

Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 题解: 思路比较简单,每条直线都可以表示为y=kx+b,所以对于任意三点,如果它们共线,那么它们中任意两点的斜率都相等. 所以就遍历points数组,对其中的每一个元素计算它和位于它后面的数组元素的斜率并保存在一个hashmap中. 这个hashmap的键就是两点构成直线的斜率,值就是和当前元素po

【leetcode刷题笔记】Spiral Matrix II

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For example,Given n = 3, You should return the following matrix: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 题解:以前做过的Spiral Matrix是给一个矩阵螺旋式的输出,这道题是给一个n,螺旋式的