Skip to content

BigEggStudy/LeetCode-Py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AppVeyor Build Status Travis Build Status Solved Problems

LeetCode

The Python3 solutions for LeetCode problems.

Problems

Table of Contents

Problems 001-050

Back to Table of Contents

# Title Solutions Time Space Comments
1 Two Sum Python3(40ms) O(N) O(N)
2 Add Two Numbers Python3(112ms) O(Max(N, M)) O(1)
3 Longest Substring Without Repeating Characters Python3(72ms) O(N) O(1) C# use array will slower
4 Median of Two Sorted Arrays Python3(100ms) O(Log(N+M)) O(1)
5 Longest Palindromic Substring Python3(120ms) O(N) O(N) Use Manacher's Algorithm
6 ZigZag Conversion Python3(100ms) O(N) O(N)
7 Reverse Integer Python3(32ms) O(1) O(1)
8 String to Integer (atoi) Python3(40ms) O(1) O(1)
9 Palindrome Number Python3(68ms) O(1) O(1)
10 Regular Expression Matching Python3(48ms) O(N*M) O(N*M)
11 Container With Most Water Python3(40ms) O(N) O(1)
12 Integer to Roman Python3(44ms) O(N) O(1)
13 Roman to Integer Python3(56ms) O(N) O(1)
14 Longest Common Prefix Python3(32ms) O(N) O(1)
15 3Sum Python3(400ms) O(N2) O(M) For Python solution, use count to reduce time to O(min(N, M2)) and space to O(M)
16 3Sum Closest Python3(92ms) O(N2) O(1)
17 Letter Combinations of a Phone Number Python3(36ms) O(4N) O(4N)
18 4Sum Python3(64ms) O(N2) O(N2)
19 Remove Nth Node From End of List Python3(32ms) O(N) O(1)
20 Valid Parentheses Python3(36ms) O(N) O(N)
21 Merge Two Sorted Lists Python3(40ms) O(N1+N2) O(1)
22 Generate Parentheses Python3(36ms) O(N) O(?)
23 Merge k Sorted Lists Python3(64ms) O(N*logk) O(1) Python solution use heap to compare the lists, so reduce time to O(N logK) but increase space to O(k)
24 Swap Nodes in Pairs Python3(28ms) O(N) O(1)
25 Reverse Nodes in k-Group Python3(48ms) O(N) O(1)
26 Remove Duplicates from Sorted Array Python3(52ms) O(N) O(1)
27 Remove Element Python3(28ms) O(N) O(1)
28 Implement strStr() Python3(32ms) O(N+M) O(1) Use Knuth–Morris–Pratt Algorithm
29 Divide Two Integers Python3(32ms) O(N) O(1)
30 Substring with Concatenation of All Words Python3(56ms) O(N*M) O(M)
31 Next Permutation Python3(36ms) O(N) O(1)
32 Longest Valid Parentheses Python3(48ms) O(N) O(1)
33 Search in Rotated Sorted Array Python3(28ms) O(N) O(1)
34 Search for a Range Python3(32ms) O(LogN) O(1)
35 Search Insert Position Python3(28ms) O(LogN) O(1)
36 Valid Sudoku Python3(44ms) O(1) O(1)
37 Sudoku Solver Python3(44ms) O(1) N(1)
38 Count and Say Python3(32ms) O(N2) O(N) Python use an dictionary of answers
39 Combination Sum Python3(52ms) O(N!) O(N)
40 Combination Sum II Python3(48ms) O(N!) O(N)
41 First Missing Positive Python3(36ms) O(N) O(1)
42 Trapping Rain Water Python3(32ms) O(N) O(1)
43 Multiply Strings Python3(84ms) O(N*M) O(N+M)
44 Wildcard Matching Python3(60ms) O(N*M) O(1) Similar with Problem No. 10
45 Jump Game II Python3(40ms) O(N) O(1) Use Greedy Algorithm
46 Permutations Python3(44ms) O(N!) (N) Get inspired by Heap's Algorithm
47 Permutations II Python3(56ms) O(N!) (N) Get inspired by Heap's Algorithm
48 Rotate Image Python3(32ms) O(N2) O(1)
49 Group Anagrams Python3(108ms) O(N K log K) O(N K) Linear algorithm will slower and cost more memory
50 Pow(x, n) Python3(32ms) O(LogN) O(1)

Problems 051-100

Back to Table of Contents

# Title Solutions Time Space Comments
51 N-Queens Python3(60ms) O(N!) O(N)
52 N-Queens II Python3(44ms) O(N!) O(N)
53 Maximum Subarray Python3(36ms) O(N) O(1)
54 Spiral Matrix Python3(28ms) O(N) O(1)
55 Jump Game Python3(32ms) O(N) O(1) Use Greedy Algorithm
56 Merge Intervals Python3(40ms) O(NLogN) O(1)
57 Insert Interval Python3(40ms) O(N) O(N)
58 Length of Last Word Python3(32ms) O(N) O(1)
59 Spiral Matrix II Python3(36ms) O(N2) O(N2)
60 Permutation Sequence Python3(24ms) O(N) (N) Use Cantor Expansion (Introduction to Algorithms, MIT)
61 Rotate List Python3(36ms) O(N) O(1)
62 Unique Paths Python3(28ms) O(Min(M, N)) O(1) Use dynamic programing will cost O(M*N) time and O(Min(M, N)) space
63 Unique Paths II Python3(32ms) O(M*N) O(Min(M, N))
64 Minimum Path Sum Python3(100ms) O(M*N) O(Min(M, N)) Update grid to not use new space
65 Valid Number Python3(36ms) O(N) O(1)
66 Plus One Python3(36ms) O(N) O(N)
67 Add Binary Python3(40ms) O(N) O(N)
68 Text Justification Python3(32ms) O(N) O(N)
69 Sqrt(x) Python3(36ms) O(LogN) O(1) Use Newton–Raphson Method to computing square root
70 Climbing Stairs Python3(28ms) O(N) O(1)
71 Simplify Path Python3(32ms) O(N) O(N)
72 Edit Distance Python3(128ms) O(N*M) O(Min(N,M))
73 Set Matrix Zeroes Python3(148ms) O(N*M) O(N+M) When use constant space, solution will slower
74 Search a 2D Matrix Python3(76ms) O(Log(N+M)) O(1)
75 Sort Colors Python3(32ms) O(N) O(1)

Problems 201-250

Back to Table of Contents

# Title Solutions Time Space Comments
222 Count Complete Tree Nodes Python3(80ms) O(log2N) O(1)

Problems 401-450

Back to Table of Contents

# Title Solutions Time Space Comments
410 Split Array Largest Sum Python3(40ms) O(N∗log(sum of array)) O(1) Binary Search

Problems 451-500

Back to Table of Contents

# Title Solutions Time Space Comments
482 License Key Formatting Python3(36ms) O(N) O(N)

Problems 801-850

Back to Table of Contents

# Title Solutions Time Space Comments
843 Guess the Word Python3(36ms) O(N2) O(N)

Problems 1001-1050

Back to Table of Contents

# Title Solutions Time Space Comments
1007 Minimum Domino Rotations For Equal Row Python3(1248ms) O(N) O(1)

Problems 1051-1100

Back to Table of Contents

# Title Solutions Time Space Comments
1057 Campus Bikes Python3(724ms) O(N*M) O(N*M)
1096 Brace Expansion II Python3(48ms) O(N) ?

Problems 1151-1200

Back to Table of Contents

# Title Solutions Time Space Comments
1197 Minimum Knight Moves Python3(36ms) O(N2) O(N2)

Releases

No releases published

Packages

No packages published

Languages