查看: 9193| 回复: 8
跳转到指定楼层
上一主题 下一主题
收起左侧

[高频题] 春招~~~Leetcode按类型刷题(内附刷题顺序表)

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
Leetcode 分类顺序Array[td]
基础
27Remove Element
26Remove Duplicates from Sorted Array
80Remove Duplicates from Sorted Array II
277Find the Celebrity
189Rotate Array
41First Missing Positive
299Bulls and Cows
134Gas Station
118Pascal's Triangle很少考
119Pascal's Triangle II很少考
169Majority Element很少考
229Majority Element II很少考
274H-Index
275H-Index IIBinary Search
243Shortest Word Distance
244Shortest Word Distance II
245Shortest Word Distance III
217Contains Duplicate
219Contains Duplicate II很少考
220Contains Duplicate III很少考
55Jump Game
45Jump Game II
121Best Time to Buy and Sell Stock
122Best Time to Buy and Sell Stock II
123Best Time to Buy and Sell Stock III
188Best Time to Buy and Sell Stock IV
309Best Time to Buy and Sell Stock with Cooldown
11Container With Most Water
42Trapping Rain Water
334Increasing Triplet Subsequence
128Longest Consecutive Sequence
164Maximum GapBucket
287Find the Duplicate Number
135Candy很少考
330Patching Array很少考
提高
4Median of Two Sorted Arrays
321Create Maximum Number很少考
327Count of Range Sum很少考
289Game of Life
Interval
57Insert Interval
56Merge Intervals
252Meeting Rooms
253Meeting Rooms II
352Data Stream as Disjoint IntervalsTreeMap
Counter
239Sliding Window Maximum
295Find Median from Data Stream
53Maximum Subarray
325Maximum Size Subarray Sum Equals k
209Minimum Size Subarray Sum
238Product of Array Except Self
152Maximum Product Subarray
228Summary Ranges
163Missing Ranges
Sort
88Merge Sorted Array
75Sort Colors
283Move Zeroes
376Wiggle Subsequence
280Wiggle Sort
324Wiggle Sort II

String[td]
基础
28Implement strStr()
14Longest Common Prefix
58Length of Last Word
387First Unique Character in a String
383Ransom Note
344Reverse String
151Reverse Words in a String
186Reverse Words in a String II
345Reverse Vowels of a String
205Isomorphic Strings
293Flip Game
294Flip Game II
290Word Pattern
242Valid Anagram
49Group Anagrams
249Group Shifted Strings
87Scramble String
179Largest Number很少考
6ZigZag Conversion很少考
161One Edit Distance
38Count and Say
358Rearrange String k Distance Apart
316Remove Duplicate Letters
271Encode and Decode Strings
168Excel Sheet Column Title
171Excel Sheet Column Number
13Roman to Integer
12Integer to Roman
273Integer to English Words
246Strobogrammatic Number
247Strobogrammatic Number II
248Strobogrammatic Number III很少考
提高
68Text Justification
65Valid Number
157Read N Characters Given Read4
158Read N Characters Given Read4 II - Call multiple times
Substring
76Minimum Window SubstringSliding Window
30Substring with Concatenation of All WordsSliding Window
3Longest Substring Without Repeating CharactersSliding Window
340Longest Substring with At Most K Distinct CharactersSliding Window
395Longest Substring with At Least K Repeating CharactersSliding Window
159Longest Substring with At Most Two Distinct CharactersSliding Window
Palindrome
125Valid Palindrome
266Palindrome Permutation
5Longest Palindromic Substring
9Palindrome Number
214Shortest Palindrome
336Palindrome Pairs
131Palindrome Partitioning
132Palindrome Partitioning II
267Palindrome Permutation II
Parentheses
20Valid Parentheses
22Generate Parentheses
32Longest Valid Parentheses
241Different Ways to Add Parentheses
301Remove Invalid Parentheses
Subsequence
392Is Subsequence
115Distinct Subsequences
187Repeated DNA Sequences很少考

Math[td]
基础
7Reverse Integer
165Compare Version Numbers
66Plus One
8String to Integer (atoi)
258Add Digits
67Add Binary
43Multiply Strings
29Divide Two Integers
69Sqrt(x)
50Pow(x, n)
367Valid Perfect Square
365Water and Jug Problem
204Count Primes
Sum
1Two Sum
167Two Sum II - Input array is sorted
153Sum
163Sum Closest很少考
2593Sum Smaller很少考
184Sum
很少考
231Power of Two
326Power of Three
342Power of Four
372Super Pow
233Number of Digit One
319Bulb Switcher
292Nim Game
202Happy Number
400Nth Digit
263Ugly Number
264Ugly Number II
306Additive Number
172Factorial Trailing Zeroes
343Integer Break
396Rotate Function
390Elimination Game
386Lexicographical Numbers
357Count Numbers with Unique Digits
360Sort Transformed Array
397Integer Replacement
368Largest Divisible Subset

Tree[td]
基础
144Binary Tree Preorder Traversalpreorder
94Binary Tree Inorder TraversalInorder
145Binary Tree Postorder Traversalpostorder
102Binary Tree Level Order TraversalDFS + BFS
Preorder
100Same Treepreorder
101Symmetric Treepreorder
226Invert Binary Treepreorder + BFS
257Binary Tree Pathspreorder
112Path Sumpreorder
113Path Sum IIpreorder
129Sum Root to Leaf Numberspreorder
298Binary Tree Longest Consecutive Sequencepreorder
111Minimum Depth of Binary Treepreorder
Postorder
104Maximum Depth of Binary Treepostorder
110Balanced Binary Treepostorder
124Binary Tree Maximum Path Sumpostorder
250Count Univalue Subtreespostorder
366Find Leaves of Binary Treepostorder
337House Robber IIIpostorder + preorder
BFS
107Binary Tree Level Order Traversal IIBFS
103Binary Tree Zigzag Level Order TraversalBFS
199Binary Tree Right Side ViewBFS + preorder
BST
98Validate Binary Search Treepreorder
235Lowest Common Ancestor of a Binary Search Treepreorder
236Lowest Common Ancestor of a Binary Treepostorder
108Convert Sorted Array to Binary Search Treebinary search
109Convert Sorted List to Binary Search Treebinary search
173Binary Search Tree Iteratorinorder
230Kth Smallest Element in a BSTinorder
297Serialize and Deserialize Binary TreeBFS
285Inorder Successor in BSTinorder
270Closest Binary Search Tree Valuepreorder
272Closest Binary Search Tree Value IIinorder
99Recover Binary Search Treeinorder
重要程度
156Binary Tree Upside Down很少考
114Flatten Binary Tree to Linked List很少考
255Verify Preorder Sequence in Binary Search Tree很少考
333Largest BST Subtree很少考
222Count Complete Tree Nodes很少考
105Construct Binary Tree from Preorder and Inorder Traversal很少考
106Construct Binary Tree from Inorder and Postorder Traversal很少考
116Populating Next Right Pointers in Each Node重要
117Populating Next Right Pointers in Each Node II重要
314Binary Tree Vertical Order Traversal重要
96Unique Binary Search Trees重要
95Unique Binary Search Trees II很少考
331Verify Preorder Serialization of a Binary Tree很少考

Backtracking[td]
基础
78Subsets
90Subsets II
77Combinations
39Combination Sum
40Combination Sum II
216Combination Sum III
377Combination Sum IVDynamic Programming
254Factor Combinations
46Permutations
47Permutations II
31Next PermutationString
60Permutation SequenceString
291Word Pattern II
Enumeration
17Letter Combinations of a Phone Number
320Generalized Abbreviation要重录
93Restore IP Addresses很少考
282Expression Add Operators
140Word Break II
351Android Unlock Patterns

Dynamic Programming[td]
一维
70Climbing Stairs
62Unique Paths
63Unique Paths II
120Triangle很少考
279Perfect Squares
139Word Break
375Guess Number Higher or Lower II
312Burst Balloons
322Coin Change
二维
256Paint House
265Paint House II
64Minimum Path Sum
72Edit Distance
97Interleaving String
174Dungeon Game
221Maximal Square
85Maximal Rectangle
363Max Sum of Rectangle No Larger Than KTreeSet
化简
198House Robber
213House Robber II
276Paint Fence
91Decode Ways
10Regular Expression Matching
44Wildcard Matching

LinkedList[td]
基础
206Reverse Linked List
141Linked List Cycle
24Swap Nodes in Pairs
328Odd Even Linked List
92Reverse Linked List II
237Delete Node in a Linked List
19Remove Nth Node From End of List
83Remove Duplicates from Sorted List
203Remove Linked List Elements
82Remove Duplicates from Sorted List II
369Plus One Linked List
2Add Two Numbers
160Intersection of Two Linked Lists
21Merge Two Sorted Lists
提高
234Palindrome Linked List
143Reorder List
142Linked List Cycle II
148Sort List
25Reverse Nodes in k-Group
61Rotate List
86Partition List
23Merge k Sorted Lists
147Insertion Sort List

Binary Search[td]
基础
278First Bad Version
35Search Insert Position
33Search in Rotated Sorted Array
81Search in Rotated Sorted Array II
153Find Minimum in Rotated Sorted Array
154Find Minimum in Rotated Sorted Array II
162Find Peak Element
374Guess Number Higher or Lower
34Search for a Range
349Intersection of Two Arrays
350Intersection of Two Arrays II
315Count of Smaller Numbers After Self
300Longest Increasing Subsequence
354Russian Doll Envelopes

Matrix[td]
48Rotate Image
54Spiral Matrix
59Spiral Matrix II
73Set Matrix Zeroes
311Sparse Matrix Multiplication
329Longest Increasing Path in a Matrix
378Kth Smallest Element in a Sorted Matrix
74Search a 2D Matrix
240Search a 2D Matrix II
370Range Addition
79Word Search
296Best Meeting Point
361Bomb Enemy
317Shortest Distance from All Buildings
302Smallest Rectangle Enclosing Black Pixels
36Valid Sudoku
37Sudoku Solver
DFS & BFS[td]
基础
200Number of Islands
286Walls and Gates
130Surrounded Regions
339Nested List Weight Sum
364Nested List Weight Sum II
127Word Ladder
51N-Queens
52N-Queens II
126Word Ladder II

Stack & PriorityQueue[td]
Stack
155Min Stack
232Implement Queue using Stacks
225Implement Stack using Queues
150Evaluate Reverse Polish Notation
71Simplify Path
388Longest Absolute File Path
394Decode String
224Basic Calculator
227Basic Calculator II
385Mini Parser
84Largest Rectangle in Histogram
PriorityQueue
215Kth Largest Element in an Array
347Top K Frequent Elements
313Super Ugly Number很少考
373Find K Pairs with Smallest Sums很少考
218The Skyline Problem
332Reconstruct Itinerary
341Flatten Nested List Iterator

Bit Manipulation[td]
基础
389Find the Difference
136Single Number
318Maximum Product of Word Lengths
很少考
393UTF-8 Validation
201Bitwise AND of Numbers Range
371Sum of Two Integers
338Counting Bits
89Gray Code
268Missing Number
191Number of 1 Bits
190Reverse Bits
137Single Number II
260Single Number III

Topological Sort[td]
基础
207Course Schedule
210Course Schedule II
269Alien Dictionary

Random[td]
基础
模板Reservoir Sampling
384Shuffle an Array
398Random Pick Index
382Linked List Random Node
380Insert Delete GetRandom O(1)
381Insert Delete GetRandom O(1) - Duplicates allowed
138Copy List with Random Pointer

Graph[td]
基础
133Clone Graph
399Evaluate Division
310Minimum Height Trees
图形学
335Self Crossing很少考
149Max Points on a Line
356Line Reflection很少考
391Perfect Rectangle很少考
223Rectangle Area很少考

Union FInd[td]
基础
261Graph Valid Tree
323Number of Connected Components in an Undirected Graph
305Number of Islands II

Trie[td]
基础
211Add and Search Word - Data structure design
208Implement Trie (Prefix Tree)
212Word Search II

Design[td]
基础
359Logger Rate Limiter
346Moving Average from Data StreamSliding Window
362Design Hit Counter
281Zigzag Iterator
284Peeking Iterator
251Flatten 2D Vector
288Unique Word Abbreviation
170Two Sum III - Data structure design
348Design Tic-Tac-Toe
379Design Phone Directory
353Design Snake Game
146LRU Cache
355Design Twitter
303Range Sum Query - Immutable
304Range Sum Query 2D - Immutable
307Range Sum Query - MutableBinary Index Tree
308Range Sum Query 2D - MutableBinary Index Tree

上一篇:太久没刷题,不知如何下手,怎么办?
下一篇:有什么网站是可以迅速复习编程语言基本语法的?
🔗
 楼主| soliloquyyy 2019-1-27 04:53:11 | 只看该作者
全局:
27. Remove Element
这道题输入时一个int array和一个int val;我们需要在这个array中in place删除给定的这个val; 然后返回一个长度,在这个长度内的所有元素必须不能包含需要删除的val;因为这道题不需要保留长度内order和原int order一致,所以有两种方法。
Int I = 0;
Int n = nums.length;
一种想法是用while(i<n)循环,一旦发现当前所在位置是需要remove的元素,就把这个位置的元素换成n所在的元素,然后n--;如果当前所在位置不是要remove的元素,就i++; 这样最终n就是最终返回的长度。这种做法在长度内是无法保持order的,因为我们总是从array最后取元素进来。
class Solution {
    public int removeElement(int[] nums, int val) {
        if(nums == null || nums.length == 0)
            return 0;
        
        int i = 0;
        int n = nums.length;
        while(i<n){
            if(nums[i] == val){
                nums[i] = nums[n-1];
                n--;
            }else{
                i++;
            }
        }
        return n;
    }
}
另外一种想法就是用一个变量(假设我们叫他res吧)去记录我们下一次需要挪到元素时的位置。我们用一个for loop循环一遍整个array,如果出现nums[i] != val的话,我们就把nums[res++] = nums[i]. 这背后的思想是如果我们nums[i]是需要移除的元素val的话,我们是不需要移动res的,因为这就是我们下一次需要挪动元素的位置。
class Solution {
    public int removeElement(int[] nums, int val) {
        if(nums == null || nums.length == 0)
            return 0;
        
        int res = 0;
        for(int i=0;i<nums.length;i++){
            if(nums[i] != val){
                nums[res++] = nums[i];
            }
        }
        return res;
    }
}

但是对于这种题目本身而言的话,我个人倾向于选择第二种思考方式,因为这种方式既能保持长度内顺序不变,再者呢,这是个消除元素算法的general thinking.
回复

使用道具 举报

🔗
 楼主| soliloquyyy 2019-1-27 04:53:42 | 只看该作者
全局:
26. Remove Duplicates from Sorted Array
这道题和Leetcode 80题的思想是一样的,代码也只需要修改几行。
首先我们的input是一个int数组,而且是一个sorted array,这也就意味着我们的duplicates一定是在相邻的index。我们还是按照Leetcode 27题第二种放大的打致思想来做,首先我们需要一个变量来记录我们需要replace的位置。duplicates是有至少两个以上的同样val的element;消除duplicate不是消除element,所以我们要把duplicate里的第二个位置当做replace的index。这也就是说我们需要一个变量(假设我们加它res)初始值为1.也就是这个array里面第二个值。这是我们最先replace的index。然后我们从i=1开始循环一遍数组,一旦发现nums[i]的值和nums[res-1]的值不相等,我们就把res[i++] = nums[i]; 让我们反过来想,如果nums[i] == nums[res-1]意味着什么,意味着我们现在我们有两个duplicates,我们不能改变res的位置。然后i++,下一次找到nums[i] != nums[res-1]时候,我们就把duplicate消除了,然后我们res++。这样每次比较res-1的位置和i的值就能不断保证整个res之前的数组都是没有duplicates的。
class Solution {
    public int removeDuplicates(int[] nums) {
        if(nums == null || nums.length <= 1)
            return nums.length;
        
        int res = 1;
        for(int i=0;i<nums.length;i++){
            if(nums[i] != nums[res-1])
                nums[res++] = nums[i];
        }
        return res;
    }
}
回复

使用道具 举报

🔗
 楼主| soliloquyyy 2019-1-27 04:53:57 | 只看该作者
全局:
80. Remove Duplicates from Sorted Array II
这道题和Leetcode 26题目一模一样,只加了一个要求就是,duplicates定义变成至少三个才叫duplicates。
那么,我们还是之前的思路,用一个变量记录需要replace的位置(叫他res),初始值就是array里第三个位置,也就是2.
从i=2循环一遍数组,如果有nums[i] != nums[res-2], 就nums[res++] = nums[i];
还是反过来想,如果nums[i] == nums[res-2],意味着什么我们有两个元素相等了,但还需要一个元素来使成为duplicates。这个时候我们要i++然后看nums[i] == nums[res-2]。因为i变大了一个,这个时候,她们如果还相等说明,我们找到duplicates啦,所以我们不改变res的值。等到下一次nums[i] != nums[res-2],我们就进行replace的动作。
class Solution {
    public int removeDuplicates(int[] nums) {
        if(nums == null || nums.length <= 2)
            return nums.length;
        
        int res = 2;
        for(int i=2;i<nums.length;i++){
            if(nums[i] != nums[res-2]){
                nums[res++] = nums[i];
            }
        }
        return res;
    }
}

回复

使用道具 举报

🔗
Bitdance 2019-2-2 13:00:10 | 只看该作者
本楼:
全局:
回复

使用道具 举报

🔗
Bitdance 2019-2-2 23:00:42 | 只看该作者
本楼:
全局:
回复

使用道具 举报

全局:
这个不错!刚开始刷题,楼主觉得刷题应该按类型刷,还是按top排行刷呢??
回复

使用道具 举报

🔗
youziwry 2019-2-4 03:00:52 | 只看该作者
全局:
Jennyy 发表于 2019-2-3 15:37
这个不错!刚开始刷题,楼主觉得刷题应该按类型刷,还是按top排行刷呢??

分类top不就行了么
回复

使用道具 举报

🔗
ivy2016 2019-2-4 06:12:24 | 只看该作者
全局:
这个考的频率是指的所有公司还是特指某一个公司的面试?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表