MCPcopy Create free account

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

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

↓ 4 callersMethodfind
(int id)
src/main/java/com/freetymekiyan/algorithms/level/medium/SentenceSimilarity2.java:87
↓ 4 callersMethodfindClosestLeaf
DFS, BFS. Intuition: The closest leaf of a node is actually the minimum distance from the node to the boundary of the tree. If we treat tree generally
src/main/java/com/freetymekiyan/algorithms/level/medium/ClosestLeafInABinaryTree.java:73
↓ 4 callersMethodgenerateUserCount
(UserSession[] userSessions)
src/main/java/com/freetymekiyan/algorithms/other/UserSessions.java:23
↓ 4 callersMethodgetInteger
()
src/main/java/com/freetymekiyan/algorithms/level/medium/FlattenNestedListIterator.java:43
↓ 4 callersMethodgetList
()
src/main/java/com/freetymekiyan/algorithms/level/medium/FlattenNestedListIterator.java:47
↓ 4 callersMethodinput
If input c is '#': 1. Update trie with full sentence. 2. Reset variables, like previous node and prefix. 3. Return an empty list. Else the sentence is
src/main/java/com/freetymekiyan/algorithms/level/hard/DesignSearchAutocompleteSystem.java:109
↓ 4 callersMethodisInteger
()
src/main/java/com/freetymekiyan/algorithms/level/medium/FlattenNestedListIterator.java:39
↓ 4 callersMethodisScramble
DP f[n][i][j] means isScramble(s1[i: i+n], s2[j: j+n]) f[n][i][j] = f[k][i][j] && f[n - k][i+k][j+k] || f[k][i][j+n-k] && f[n-k][i+k][j]
src/main/java/com/freetymekiyan/algorithms/level/hard/ScrambleStr.java:29
↓ 4 callersMethodmergeToCover
Greedy. Go through intervals and keep only overlapping ones. | If none, return 0. Sort the overlapping intervals by start first. For each overlapping
src/main/java/com/freetymekiyan/algorithms/other/MergeIntervalsToCoverTarget.java:37
↓ 4 callersMethodmergeTwoLists
Recursive. Recurrence Relation: Pick the node with smaller value as current head h. Then concatenate h with the merged result of h.next and the other
src/main/java/com/freetymekiyan/algorithms/level/hard/MergeKSortedList.java:108
↓ 4 callersMethodprintList
(ListNode head)
src/main/java/com/freetymekiyan/algorithms/level/medium/RemoveDuplicatesFromSortedList2.java:55
↓ 4 callersMethodresize
(int max)
src/main/java/com/freetymekiyan/datastructures/ArrayStack.java:87
↓ 4 callersMethodroot
(int i)
src/main/java/com/freetymekiyan/algorithms/other/QuickUnionUF.java:15
↓ 4 callersMethodsearch
Returns if the word is in the data structure. A word could contain the dot character '.' to represent any one letter.
src/main/cpp/211_Add_and_Search_Word _-_Data_structure_design.cpp:74
↓ 4 callersMethodstartsWith
(String prefix)
src/main/java/com/freetymekiyan/algorithms/level/medium/ImplementTrie.java:66
↓ 4 callersMethodstrStr
Two Pointers. For i from 0 to m-n: | For j from 0 to n-1: | If characters are not the same, break | If j reaches the end of needle, return i. Retu
src/main/java/com/freetymekiyan/algorithms/level/easy/ImplementStrStr.java:26
↓ 4 callersMethodsum
(int[] A, int[] range)
src/main/java/com/freetymekiyan/algorithms/other/MaxSubseqDifferenceNoOverlap.java:105
↓ 4 callersMethodsum
(int row, int col)
src/main/java/com/freetymekiyan/algorithms/level/hard/RangeSumQuery2DMutable.java:74
↓ 4 callersMethodswap
(List<Integer> row, int a, int b)
src/main/java/com/freetymekiyan/algorithms/level/hard/Permutations2.java:60
↓ 4 callersMethodswap
(int[] nums, int i1, int i2)
src/main/java/com/freetymekiyan/algorithms/level/medium/SortColors.java:127
↓ 4 callersMethodswap
(int[] a, int i, int j)
src/main/java/com/freetymekiyan/algorithms/level/medium/KthLargestElementInAnArray.java:105
↓ 4 callersMethodtopKFrequent
Use a map to store frequency. Create a bucket of lists, indexed by frequency. Each list contains the number of that frequency.
src/main/java/com/freetymekiyan/algorithms/level/medium/TopKFrequentElements.java:38
↓ 4 callersMethodtotalNQueens
backtrace program using bit-wise operation to speed up calculation. 'limit'is all '1's. 'h' is the bits all the queens vertically projected on a ro
src/main/java/com/freetymekiyan/algorithms/level/hard/NQueens2.java:46
↓ 4 callersMethodunion
O(n), connect two points to the same root. Every time we union two points, the count will decrease by 1.
src/main/java/com/freetymekiyan/algorithms/level/medium/NumberOfIslands.java:239
↓ 4 callersMethodunion
(int[] ids, int p, int q, int[] numOfUnions)
src/main/java/com/freetymekiyan/algorithms/level/medium/NumberOfIslands.java:289
↓ 4 callersMethodupdateCornerCount
(Map<Integer, Map<Integer, Integer>> count, int x, int y)
src/main/java/com/freetymekiyan/algorithms/level/hard/PerfectRectangle.java:104
↓ 4 callersMethodvalidUtf8
Bit Manipulation. How to use bit masks to get how many bytes?
src/main/java/com/freetymekiyan/algorithms/level/medium/Utf8Validation.java:56
↓ 3 callersMethodatoi
Whitespace, sign, out of range Trim the unnecessary whitespaces initialize a variable as long to store the result use a boolean as a flag to mark whet
src/main/java/com/freetymekiyan/algorithms/level/easy/atoi.java:47
↓ 3 callersMethodcheckSubarraySum
Hash Table. O(n) Time, O(n) Space. Continuous / Contiguous problem seems to always need to combine the array elements somehow. Sum the values and mod
src/main/java/com/freetymekiyan/algorithms/level/medium/ContinuousSubarraySum.java:38
↓ 3 callersMethodcheckSubarraySum2
DP. O(n^2) Time, O(n) Space. Keep the sum from each index to current index in an array.
src/main/java/com/freetymekiyan/algorithms/level/medium/ContinuousSubarraySum.java:60
↓ 3 callersMethodcompare
(int[] expectedValues, ListNode node)
src/test/java/com/freetymekiyan/algorithms/level/medium/AddTwoNumbers2Test.java:41
↓ 3 callersMethoddailyTemperatures
Stack. Let's say we are now at temperatures[i], t[i]. We need to: 1. Update all t[j], j in [0..i-1], that t[j] < t[i]. 2. t[j] has not been updated. H
src/main/java/com/freetymekiyan/algorithms/level/medium/DailyTemperatures.java:35
↓ 3 callersMethoddeleteNode
(DoubleLinkedList node)
others/LRUCache_shuna.java:44
↓ 3 callersMethodexch
(int i, int k)
src/main/java/com/freetymekiyan/datastructures/MaxPQ.java:73
↓ 3 callersMethodfind
(int[] ids, int i)
src/main/java/com/freetymekiyan/algorithms/level/hard/LongestConsecutiveSeq.java:101
↓ 3 callersMethodfind
(int i, int[] ids)
src/main/java/com/freetymekiyan/algorithms/level/medium/AccountsMerge.java:110
↓ 3 callersMethodfindKey
Find value in BST. If root is null, return null. If val is on interval's left, find in left subtree. If val is on interval's right, find in right subt
src/main/java/com/freetymekiyan/algorithms/level/hard/DataStreamAsDisjointIntervals.java:214
↓ 3 callersMethodfindPerimeter
BFS addRecursive the start point to a queue, and set it as visited Convert 2d coordinate to 1d integer and store it in queue While the queue is not em
src/main/java/com/freetymekiyan/algorithms/other/MatrixColor.java:35
↓ 3 callersMethodfirstUniqChar
Hash table. Save count of each character in a map. Then find the first one that has count as 1. If the count array stores count and index, another lin
src/main/java/com/freetymekiyan/algorithms/level/easy/FirstUniqueCharacterInAString.java:32
↓ 3 callersMethodhasNext
()
src/main/java/com/freetymekiyan/algorithms/other/PeekIterator.java:28
↓ 3 callersMethodinsert
(String word)
src/main/java/com/freetymekiyan/algorithms/level/medium/ImplementTrie.java:26
↓ 3 callersMethodisBadVersion
(int ver)
src/main/java/com/freetymekiyan/algorithms/level/easy/FirstBadVersion.java:71
↓ 3 callersMethodisValidBST
Recursive Check current node Check left subtree Compare with current node and set predecessor Check right subtree
src/main/java/com/freetymekiyan/algorithms/level/medium/ValidateBST.java:35
↓ 3 callersMethodknows
(int a, int b)
src/main/java/com/freetymekiyan/algorithms/level/medium/FindTheCelebrity.java:69
↓ 3 callersMethodkthSmallestB
Iterasive solution with stack.
src/main/java/com/freetymekiyan/algorithms/level/medium/KthSmallestElementInABst.java:71
↓ 3 callersMethodkthSmallestC
Binary search for left subtree node count. For BST, the # of nodes of left subtree is actually the node's ranking.
src/main/java/com/freetymekiyan/algorithms/level/medium/KthSmallestElementInABst.java:94
↓ 3 callersMethodless
(int i, int k)
src/main/java/com/freetymekiyan/datastructures/MaxPQ.java:79
↓ 3 callersMethodlongestValidParentheses
src/main/cpp/032_Longest_Valid_Parentheses.cpp:28
↓ 3 callersMethodmaxSalesTime
(int[] c)
src/main/java/com/freetymekiyan/algorithms/other/MaxSales.java:20
↓ 3 callersMethodmerge
(int[] nums1, int[] nums2, int k)
src/main/java/com/freetymekiyan/algorithms/level/hard/CreateMaximumNumber.java:56
↓ 3 callersMethodmonotoneIncreasingDigits
Greedy. Observations: 1. 9 is the largest number with monotone increasing digits(MID) of single digits. 2. Go from MSB to LSB, if we keep current digi
src/main/java/com/freetymekiyan/algorithms/level/medium/MonotoneIncreasingDigits.java:43
↓ 3 callersMethodnext
@return the next smallest number s
src/main/java/com/freetymekiyan/algorithms/level/medium/BSTIterator.java:45
↓ 3 callersMethodnumTrees
src/main/cpp/096_Unique_Binary_Search_Trees.cpp:32
↓ 3 callersMethodremove
Remove an interval from BST and return a updated root node. If root is null, return null. If interval is null, nothing to remove, return root. If inte
src/main/java/com/freetymekiyan/algorithms/level/hard/DataStreamAsDisjointIntervals.java:187
↓ 3 callersMethodreverse
(int[] num, int s)
src/main/java/com/freetymekiyan/algorithms/level/medium/NextPermutation.java:53
↓ 3 callersMethodrob
If current house is robbed, then subtrees' roots cannot be robbed. The maximum is root.val + rob(root.left.left) + rob(root.left.right) + rob(root.rig
src/main/java/com/freetymekiyan/algorithms/level/medium/HouseRobber3.java:50
↓ 3 callersMethodroot
(int i)
src/main/java/com/freetymekiyan/algorithms/level/medium/NumberofConnectedComponentsinanUndirectedGraph.java:53
↓ 3 callersMethodset
(K key, V val)
src/main/java/com/freetymekiyan/datastructures/LRUCache.java:37
↓ 3 callersMethodvalidPalindrome
3 cases: 1. Remove leftmost character, check if the remaining string is a palindrome. 2. Remove rightmost character, check if the remaining string is
src/main/java/com/freetymekiyan/algorithms/level/easy/ValidPalindrome2.java:29
↓ 3 callersMethodwiggleMaxLength
DP, Greedy. Use two vars to record the count of increasing-first and decreasing-first sequences. Then loop through the array from second number. If cu
src/main/java/com/freetymekiyan/algorithms/level/medium/WiggleSubsequence.java:50
↓ 2 callersMethodaddKey
Insert a new key into the BST. If root is null, create a new root with the given value. If val < root.interval.start, should insert to the left subtre
src/main/java/com/freetymekiyan/algorithms/level/hard/DataStreamAsDisjointIntervals.java:234
↓ 2 callersMethodaddLists
(ListNode l1, ListNode l2, int offset)
src/main/java/com/freetymekiyan/algorithms/level/medium/AddTwoNumbers2.java:42
↓ 2 callersMethodaddNode
Add a node after head.
src/main/java/com/freetymekiyan/algorithms/level/hard/LRUCache.java:106
↓ 2 callersMethodaddWord
Adds a word into the data structure.
src/main/cpp/211_Add_and_Search_Word _-_Data_structure_design.cpp:53
↓ 2 callersMethodaverageOfLevels
BFS. Traverse each level of the binary tree.
src/main/java/com/freetymekiyan/algorithms/level/easy/AverageOfLevelsInBinaryTree.java:37
↓ 2 callersMethodaverageOfLevels2
DFS.
src/main/java/com/freetymekiyan/algorithms/level/easy/AverageOfLevelsInBinaryTree.java:58
↓ 2 callersMethodbacktrack
Backtracking. Statement: Given board, starting position, word, and current position in word. Find whether the word is in board. Recursion: Check curre
src/main/java/com/freetymekiyan/algorithms/level/medium/WordSearch.java:71
↓ 2 callersMethodbinarySearch
(Interval[] intervals, int end)
src/main/java/com/freetymekiyan/algorithms/level/medium/FindRightInterval.java:70
↓ 2 callersMethodbuildGrid
(String[] val)
src/test/java/com/freetymekiyan/algorithms/level/medium/NumberOfIslandsTest.java:29
↓ 2 callersMethodcanCross
DP, bottom-up. Recurrence relation: canCross[i][j] denotes the state whether the frog can cross at stone i+1 with j steps For any j < i, distance = st
src/main/java/com/freetymekiyan/algorithms/level/hard/FrogJump.java:59
↓ 2 callersMethodcombinationSum3
(int k, int n)
src/main/java/com/freetymekiyan/algorithms/level/medium/CombinationSum3.java:41
↓ 2 callersMethodcompare
(String s1, String s2)
src/main/java/com/freetymekiyan/algorithms/level/medium/LargestNum.java:35
↓ 2 callersMethodcompareMatrices
(int[][] m1, int[][] m2)
src/main/java/com/freetymekiyan/algorithms/utils/Utils.java:84
↓ 2 callersMethodcompareTo
(Element o)
src/main/java/com/freetymekiyan/algorithms/level/medium/KthSmallestElementInASortedMatrix.java:101
↓ 2 callersMethodconvert
Math Given a number and a base, convert the number
src/main/java/com/freetymekiyan/algorithms/level/easy/ConvertANumberToHexadecimal.java:48
↓ 2 callersMethodcountSubstrings
DP. Regard a palindrome string as 2 parts: 1. The 2 chars at both ends. 2. The inner substring. So a substring from i to j is a palindrome if: 1. The
src/main/java/com/freetymekiyan/algorithms/level/medium/PalindromicSubstrings.java:39
↓ 2 callersMethodcountSubstrings2
Brute-force. Check if each char or 2 chars can be the center of a palindrome.
src/main/java/com/freetymekiyan/algorithms/level/medium/PalindromicSubstrings.java:57
↓ 2 callersMethoddeleteAndEarn
DP. Number positions do not matter, only the counts matter. When a number is deleted, all its neighbors are deleted. So no other numbers can delete th
src/main/java/com/freetymekiyan/algorithms/level/medium/DeleteAndEarn.java:51
↓ 2 callersMethoddeleteDuplicates
Set a pre pointer
src/main/java/com/freetymekiyan/algorithms/level/medium/RemoveDuplicatesFromSortedList2.java:66
↓ 2 callersMethoddfs
Backtracking. What kind of data do we need to preserve for between recursive calls? Of course the result list we are going to generate. And the origin
src/main/java/com/freetymekiyan/algorithms/level/hard/ExpressionAddOperators.java:68
↓ 2 callersMethoddfs
@param ps start index of preorder, inclusive @param pe end index of preorder, inclusive @param is start index of inorder, inclusive @param ie end inde
src/main/java/com/freetymekiyan/algorithms/level/medium/ConstructBTPreInOrder.java:36
↓ 2 callersMethoddfs
DFS, iterative. Check with each visited neighbor to see if the nodes are in same set or not.
src/main/java/com/freetymekiyan/algorithms/level/medium/IsGraphBipartite.java:78
↓ 2 callersMethoddfs
(TreeNode root, StringBuilder sb)
src/main/java/com/freetymekiyan/algorithms/level/medium/SerializeAndDeserializeBst.java:49
↓ 2 callersMethoddisplayBoard
src/main/cpp/037_Sudoku_Solver.cpp:164
↓ 2 callersMethodexch
(Comparable[] pq, int i, int j)
src/main/java/com/freetymekiyan/algorithms/other/HeapSort.java:21
↓ 2 callersMethodexpandAroundCenter
Search for range in both direction
src/main/java/com/freetymekiyan/algorithms/level/medium/LongestPalindromicSubstring.java:119
↓ 2 callersMethodextendPalindrome
(String s, int left, int right, int count)
src/main/java/com/freetymekiyan/algorithms/level/medium/PalindromicSubstrings.java:69
↓ 2 callersMethodfactorial
(int n)
src/main/java/com/freetymekiyan/algorithms/level/medium/PermutationSequence.java:94
↓ 2 callersMethodfind
(int[] ids, int id)
src/main/java/com/freetymekiyan/algorithms/level/medium/NumberOfIslands.java:297
↓ 2 callersMethodfind
Recursive. Find connected component id, or the root id. Check whether child(current index) and parent(the value) are the same. If they are, return the
src/main/java/com/freetymekiyan/algorithms/level/medium/GraphValidTree.java:78
↓ 2 callersMethodfindIndex
(long[] arr, double val)
src/main/java/com/freetymekiyan/algorithms/level/hard/CountOfRangeSum.java:84
↓ 2 callersMethodflatten
Push list of nested integers to stack in REVERSE order. So that when popping out of stack, it's the correct order.
src/main/java/com/freetymekiyan/algorithms/level/medium/FlattenNestedListIterator.java:92
↓ 2 callersMethodflip
(int[] A, int i)
src/main/java/com/freetymekiyan/algorithms/other/PancakeSorting.java:36
↓ 2 callersMethodfullTreeHeight
(TreeNode root)
src/main/java/com/freetymekiyan/algorithms/level/medium/CountCompleteTreeNodes.java:33
↓ 2 callersMethodgenerateDigit
(int[] nums, int count)
src/main/java/com/freetymekiyan/algorithms/level/easy/BinaryWatch.java:56
↓ 2 callersMethodget
Insert char to the original input string If the index is even, return # If the index is odd, return char in the original string
src/main/java/com/freetymekiyan/algorithms/level/medium/LongestPalindromicSubstring.java:49
↓ 2 callersMethodgetBytes
(int d)
src/main/java/com/freetymekiyan/algorithms/level/medium/Utf8Validation.java:106
↓ 2 callersMethodgetDepth
(TreeNode root)
src/main/java/com/freetymekiyan/algorithms/level/easy/DiameterOfBinaryTree.java:73
↓ 2 callersMethodgetIndex
(char c)
src/main/java/com/freetymekiyan/algorithms/level/hard/PrefixAndSuffixSearch.java:95
↓ 2 callersMethodgetLength
(ListNode node)
src/main/java/com/freetymekiyan/algorithms/level/medium/AddTwoNumbers2.java:59
← previousnext →101–200 of 1,974, ranked by callers