MCPcopy Create free account

hub / github.com/FreeTymeKiyan/LeetCode-Sol-Res / functions

Functions1,974 in github.com/FreeTymeKiyan/LeetCode-Sol-Res

↓ 1 callersMethodpartition
Choose pivot Init 2 pointers from both ends to do partition Move left pointer if A[left] is smaller than pivot(skip smaller) Move right pointer if A[r
src/main/java/com/freetymekiyan/algorithms/other/QuickSort.java:35
↓ 1 callersMethodpartition
(int[] nums, int l, int r, int pivot)
src/main/java/com/freetymekiyan/algorithms/level/medium/WiggleSort2.java:85
↓ 1 callersMethodpartition
Partition algorithm in quick sort. O(n) Time. Find ranking: how large is a[hi] in the array. Given an array and the range to be partitioned. Initializ
src/main/java/com/freetymekiyan/algorithms/level/medium/KthLargestElementInAnArray.java:79
↓ 1 callersMethodpartition
(ListNode head, int x)
src/main/java/com/freetymekiyan/algorithms/level/medium/PartitionList86.java:21
↓ 1 callersMethodpartition2
Using start as pivot, not end. Swap with the pointer moving backward, j. So j's right should only have numbers > pivot.
src/main/java/com/freetymekiyan/algorithms/level/medium/KthLargestElementInAnArray.java:139
↓ 1 callersMethodpermute
src/main/cpp/046_Permutations.cpp:24
↓ 1 callersMethodpermuteUnique
src/main/cpp/047_Permutations_II.cpp:25
↓ 1 callersMethodpop
()
src/main/java/com/freetymekiyan/algorithms/level/easy/ImplementingQueueWithStacks.java:45
↓ 1 callersMethodpostorderTraversal
src/main/cpp/145_Binary_Tree_Postorder_Traversal.cpp:42
↓ 1 callersMethodpreProcess
(String s)
src/main/java/com/freetymekiyan/algorithms/level/medium/LongestPalindromicSubstring.java:87
↓ 1 callersMethodprintAll
(int s, int d)
src/main/java/com/freetymekiyan/algorithms/other/Graph.java:34
↓ 1 callersMethodprintBoard
(char[][] board)
src/main/java/com/freetymekiyan/algorithms/level/easy/ValidSudoku.java:126
↓ 1 callersMethodprintRepeating
Check the sign of A[abs(A[i])] if positive then make it negative by A[abs(A[i])] = -A[abs(A[i])] else this element (ith element of list) is a duplic
src/main/java/com/freetymekiyan/algorithms/other/FindDup.java:27
↓ 1 callersMethodproductExceptSelf
Array. One-pass. O(1) Space. The product is actually composed of two parts, the integers on the left, and integers on the right. For a naive O(n) Time
src/main/java/com/freetymekiyan/algorithms/level/medium/ProductofArrayExceptSelf.java:33
↓ 1 callersMethodproductExceptSelf2
Array. Two-pass. O(1) Space. Scan from the beginning to store the result of products of integers on the left. Scan from the end to start to generate f
src/main/java/com/freetymekiyan/algorithms/level/medium/ProductofArrayExceptSelf.java:53
↓ 1 callersMethodpush
(int x)
src/main/java/com/freetymekiyan/algorithms/level/easy/ImplementingQueueWithStacks.java:40
↓ 1 callersMethodput
(Key key, Value val)
src/main/java/com/freetymekiyan/datastructures/ST.java:20
↓ 1 callersMethodputNode
(char ch)
src/main/java/com/freetymekiyan/algorithms/level/medium/ImplementTrie.java:94
↓ 1 callersMethodqueenDFS
(int nrow, int row, int[] board, List<List<String>> res)
others/NQueens_shuna.java:41
↓ 1 callersMethodrandomKey
Generate a random key/short url for an incoming long url.
src/main/java/com/freetymekiyan/algorithms/level/medium/EncodeAndDecodeTinyURL.java:46
↓ 1 callersMethodrateLimiter
()
src/main/java/com/freetymekiyan/algorithms/other/RateLimiter.java:24
↓ 1 callersMethodread4
(char[] buffer)
src/main/java/com/freetymekiyan/algorithms/other/ReadNMultipleRead4.java:54
↓ 1 callersMethodread4
(char[] buffer)
src/main/java/com/freetymekiyan/algorithms/other/ReadNGivenRead4.java:45
↓ 1 callersMethodread4
(char[] buf)
src/main/java/com/freetymekiyan/algorithms/level/easy/ReadNCharactersGivenRead4.java:63
↓ 1 callersMethodremove
(String s, List<String> res, int lastI, int lastJ, char[] par)
src/main/java/com/freetymekiyan/algorithms/level/hard/RemoveInvalidParentheses.java:116
↓ 1 callersMethodremoveDup
use two pointers, one in the front, one for the dups
src/main/java/com/freetymekiyan/algorithms/level/easy/RemoveDuplicates.java:40
↓ 1 callersMethodremoveElement
Order is not important Just move the last elem to removed position
src/main/java/com/freetymekiyan/algorithms/level/easy/RemoveElement.java:26
↓ 1 callersMethodremoveLast
()
src/main/java/com/freetymekiyan/datastructures/LRUCache.java:80
↓ 1 callersMethodreorderList
src/main/cpp/143_Reorder_List.cpp:33
↓ 1 callersMethodreverseBetween
src/main/cpp/092_Reverse_Linked_List_II.cpp:31
↓ 1 callersMethodreverseBits
src/main/cpp/190_Reverse_Bits.cpp:22
↓ 1 callersMethodreverseBytes
(byte b)
src/main/java/com/freetymekiyan/algorithms/level/easy/ReverseBits.java:73
↓ 1 callersMethodreverseList
Iterative. Create a new head as null, which will be the tail of the reversed list. While head is not null: | Store the next node. | Reverse head. | Up
src/main/java/com/freetymekiyan/algorithms/level/easy/PalindromeLinkedList.java:65
↓ 1 callersMethodreverseWords
src/main/cpp/151_Reverse_Words_in_String.cpp:27
↓ 1 callersMethodrightSideView
src/main/cpp/199_Binary_Tree_Right_Side_View.cpp:38
↓ 1 callersMethodromanToInt
src/main/cpp/013_Roman_to_Integer.cpp:22
↓ 1 callersMethodromanToInt
String, Math. First need to know the letter to value mapping. Then need to clarify whether the input string can mean negative, or there is only upperc
src/main/java/com/freetymekiyan/algorithms/level/easy/RomanToInteger.java:38
↓ 1 callersMethodrotate
Get the length of matrix Do level by level, each level edge by edge In-place solutions overwrites original matrix
src/main/java/com/freetymekiyan/algorithms/level/medium/RotateImage.java:30
↓ 1 callersMethodsearch
(Node n, String s, int d, int length)
src/main/java/com/freetymekiyan/datastructures/TrieST.java:170
↓ 1 callersMethodsearch
(String s)
src/main/java/com/freetymekiyan/algorithms/level/hard/PrefixAndSuffixSearch.java:84
↓ 1 callersMethodsearch
Binary Search. Compare nums[mid] with the start and end of the range so that we know which part is sorted. If nums[mid] == target, return mid. If nums
src/main/java/com/freetymekiyan/algorithms/level/hard/SearchInRotatedSortedArray.java:35
↓ 1 callersMethodsearch
Track previous node so that we only search for one node.
src/main/java/com/freetymekiyan/algorithms/level/hard/DesignSearchAutocompleteSystem.java:156
↓ 1 callersMethodsearch
Search the prefix of words[i] to see if there is a suffix match in Trie. If the prefix's relative node has valid index, and it's different from i, and
src/main/java/com/freetymekiyan/algorithms/level/hard/PalindromePairs.java:153
↓ 1 callersMethodsearch2
Binary Search. Find minimum value's index first. Then compare target with the ending value to know which half to search. If target <= nums[length - 1]
src/main/java/com/freetymekiyan/algorithms/level/hard/SearchInRotatedSortedArray.java:71
↓ 1 callersMethodsearchInsert
src/main/cpp/035_Search_Insert_Position.cpp:28
↓ 1 callersMethodsearchMatrix
src/main/cpp/074_Search_a_2D_Matrix.cpp:29
↓ 1 callersMethodsearchPrefix
Backtracking. Statement: Given a word, a position, and a trie node, find whether the word is in the trie. Recurrent Relation: The word is in the trie
src/main/java/com/freetymekiyan/algorithms/level/medium/AddAndSearchWord.java:118
↓ 1 callersMethodsearchRange
src/main/cpp/034_Search_for_a_Range.cpp:26
↓ 1 callersMethodsearchRange
Binary Search. If search for start, round middle value down: | If nums[mid] < target, l = mid + 1. | If nums[mid] = target, r = mid, since start can b
src/main/java/com/freetymekiyan/algorithms/level/medium/SearchForARange.java:33
↓ 1 callersMethodsetEnd
()
src/main/java/com/freetymekiyan/algorithms/level/medium/ImplementTrie.java:98
↓ 1 callersMethodsetZeroes
src/main/cpp/073_Set_Matrix_Zeroes.cpp:19
↓ 1 callersMethodsimplifyPath
src/main/cpp/071_Simplify_Path.cpp:22
↓ 1 callersMethodsingleNum
hashtable, store the value and remove when appears second time the only number left is the one
src/main/java/com/freetymekiyan/algorithms/level/medium/SingleNumber.java:39
↓ 1 callersMethodsingleNumNoSpace
Without extra space XOR of two equal numbers is 0 : a^a=0. This is the main idea of the algorithm.
src/main/java/com/freetymekiyan/algorithms/level/medium/SingleNumber.java:29
↓ 1 callersMethodsingleNumber
src/main/cpp/260_Single_Number_III.cpp:25
↓ 1 callersMethodsink
(int k)
src/main/java/com/freetymekiyan/datastructures/MaxPQ.java:87
↓ 1 callersMethodsolveNQueens
(int n)
others/NQueens_shuna.java:34
↓ 1 callersMethodsolveSudoku
src/main/cpp/037_Sudoku_Solver.cpp:107
↓ 1 callersMethodsolveSudoku
(char[][] board)
src/main/java/com/freetymekiyan/algorithms/level/hard/SudokuSolver_2.java:27
↓ 1 callersMethodsolveSudoku
Use three integer arrays as mask to check whether a move is valid
src/main/java/com/freetymekiyan/algorithms/level/hard/SudokuSolver.java:40
↓ 1 callersMethodsort
If range exists Get middle index Sort first half, from low to middle Sort second half, from middle + 1 to high Merge these two halves
src/main/java/com/freetymekiyan/algorithms/other/MergeSort.java:25
↓ 1 callersMethodsort
Partition the array according to middle index Sort left half, from left to index - 1 Sort right half, from index to right
src/main/java/com/freetymekiyan/algorithms/other/QuickSort.java:21
↓ 1 callersMethodsortColors
Two pointers. One-pass. Similar to find minimum and second minimum. Remember the count of red, and count of red + white. Loop through the array. For e
src/main/java/com/freetymekiyan/algorithms/level/medium/SortColors.java:43
↓ 1 callersMethodsortColors2
3-way Partitioning. Two pointers. One-pass. One pointer redEnd for the end of red. The other blueStart for the start of blue from the end. If its blue
src/main/java/com/freetymekiyan/algorithms/level/medium/SortColors.java:83
↓ 1 callersMethodsortColors3
3-way partitioning. Standard. Move red to the front, blue to the end. Keep white in the middle. One pointer to the end of red, redEnd, starting from 0
src/main/java/com/freetymekiyan/algorithms/level/medium/SortColors.java:112
↓ 1 callersMethodsortColors4
Counting sort. Two-pass. First iterate through the array to find each color's count. Then iterate again and write colors to array.
src/main/java/com/freetymekiyan/algorithms/level/medium/SortColors.java:138
↓ 1 callersMethodsortedArrayToBST
(int[] num)
src/main/java/com/freetymekiyan/algorithms/level/medium/ConvertSortedArrToBST.java:17
↓ 1 callersMethodstackToArray
(Deque<Integer> stack)
src/main/java/com/freetymekiyan/algorithms/level/medium/Asteroids.java:114
↓ 1 callersMethodstrobogrammaticInRange
DFS. Construct stro numbers from low.length() to high.length(). Add stro pairs from outside. When left > right, add eligible count.
src/main/java/com/freetymekiyan/algorithms/level/hard/StrobogrammaticNumber3.java:29
↓ 1 callersMethodsubTree
Recursive If node values are the same, check if the tree matches If not, go down to both subtrees
src/main/java/com/freetymekiyan/algorithms/other/IsSubtree.java:25
↓ 1 callersMethodsubarraySum
sum[0, j] - sum[0, i] = sum[i + 1, j], 0 <= i <= j < nums.length. If all sums from 0 to i, 0 <= i < j, are saved, check if sum - k has shown before. S
src/main/java/com/freetymekiyan/algorithms/level/medium/SubArraySumEqualsK.java:35
↓ 1 callersMethodsummaryRanges
(int[] nums)
src/main/java/com/freetymekiyan/algorithms/level/medium/SummaryRanges.java:24
↓ 1 callersMethodswap
(ListNode first, ListNode second)
src/main/java/com/freetymekiyan/algorithms/level/medium/SwapNode.java:33
↓ 1 callersMethodswim
heap promotion: when child's key becomes larger than it's parent solution: exchange key in child with key in parent, repeat util heap order restored
src/main/java/com/freetymekiyan/datastructures/MaxPQ.java:66
↓ 1 callersMethodtestInput
(List<List<Integer>> input)
src/main/java/com/freetymekiyan/algorithms/level/medium/Triangle.java:96
↓ 1 callersMethodtestLengthOfLongestSubstringTwoDistinct
(String s, int length)
src/test/java/com/freetymekiyan/algorithms/level/hard/LongestSubstringWithAtMostTwoDistinctCharactersTest.java:18
↓ 1 callersMethodthreeSum
src/main/cpp/015_3Sum.cpp:28
↓ 1 callersMethodthreeSumClosest
src/main/cpp/016_3Sum_Closest.cpp:23
↓ 1 callersMethodtitleToNumber
src/main/cpp/171_Excel_Sheet_Column_Number.cpp:26
↓ 1 callersMethodtitleToNumber
Go through the title Map A ~ Z to 1 ~ 26 next result = current res 26 + number of current letter
src/main/java/com/freetymekiyan/algorithms/level/easy/ExcelSheetColNumber.java:32
↓ 1 callersMethodtoLetters
(String nums)
src/main/java/com/freetymekiyan/algorithms/other/IntegerToLetters.java:21
↓ 1 callersMethodtotalNQueens
N-Queens II Follow up for N-Queens problem. Now, instead outputting board configurations, return the total number of distinct solutions.
others/NQueens_shuna.java:82
↓ 1 callersMethodtotalNQueensDFS
(int nrow, int row, int[] board, int[] res)
others/NQueens_shuna.java:89
↓ 1 callersMethodtotalNumberOfSeconds
Roughly the same as LC 57 Insert Interval. Only that we have to maintain a number of total seconds. <p> Insert an event into a sorted, non-overlapping
src/main/java/com/freetymekiyan/algorithms/other/TotalNumberOfSeconds.java:44
↓ 1 callersMethodtrap
src/main/cpp/042_Trapping_Rain_Water.cpp:25
↓ 1 callersMethodtraverse
(TreeNode root)
src/main/java/com/freetymekiyan/algorithms/level/medium/LargestBstSubtree.java:48
↓ 1 callersMethodtraverse
(TreeNode root, TreeNode parent)
src/main/java/com/freetymekiyan/algorithms/level/medium/LargestBstSubtree.java:87
↓ 1 callersMethodtraverse
(TreeNode node)
src/main/java/com/freetymekiyan/algorithms/level/medium/KthSmallestElementInABst.java:54
↓ 1 callersMethodtwoSum
src/main/cpp/001_Two_Sum.cpp:27
↓ 1 callersMethodunion
(int p, int q)
src/main/java/com/freetymekiyan/algorithms/level/medium/SentenceSimilarity2.java:79
↓ 1 callersMethodunion
(int p, int q)
src/main/java/com/freetymekiyan/algorithms/level/medium/NumberofConnectedComponentsinanUndirectedGraph.java:58
↓ 1 callersMethodunion
(String email1, String email2, Map<String, Integer> emailToId, int[] ids)
src/main/java/com/freetymekiyan/algorithms/level/medium/AccountsMerge.java:102
↓ 1 callersMethodunion
(int i1, int i2)
src/main/java/com/freetymekiyan/algorithms/level/medium/AccountsMerge.java:214
↓ 1 callersMethoduniquePathsDP
(int m, int n)
src/main/java/com/freetymekiyan/algorithms/level/medium/UniquePaths.java:48
↓ 1 callersMethoduniquePathsMath
Math, Combination Equivalent to choose n-1 to go down from m - 1 + n - 1 other steps will go right
src/main/java/com/freetymekiyan/algorithms/level/medium/UniquePaths.java:37
↓ 1 callersMethoduniquePathsWithObstacles
DP, bottom-up approach build from end point to start point for the grid paths at the rth row and cth column paths[r][c] = obstacleGrid[r][c] == 1 ? 0
src/main/java/com/freetymekiyan/algorithms/level/medium/UniquePaths2.java:39
↓ 1 callersMethodupdate
(int row, int col, int val)
src/main/java/com/freetymekiyan/algorithms/level/hard/RangeSumQuery2DMutable.java:58
↓ 1 callersMethodupdate
(int i, int val)
src/main/java/com/freetymekiyan/algorithms/level/medium/RangeSumQueryMutable.java:48
↓ 1 callersMethodupdateValue
Recursive. When one node changes value, its parent might change as well. And so its parent's parent. @param node The reference to the node tha
src/main/java/com/freetymekiyan/algorithms/other/UpdateTreeValue.java:35
↓ 1 callersMethodvalidTree
Union Find. What is the difference between tree and graph? Tree is a special graph: 1) All connected. 2) No cycle. Connected acyclic graph. A quick ch
src/main/java/com/freetymekiyan/algorithms/level/medium/GraphValidTree.java:47
← previousnext →601–700 of 1,974, ranked by callers