MCPcopy Create free account

hub / github.com/LjyYano/LeetCode / functions

Functions1,125 in github.com/LjyYano/LeetCode

↓ 3 callersMethodsortedListToBST
(ListNode head)
src/main/java/L0109_ConvertSortedListToBinarySearchTree.java:64
↓ 3 callersMethodsplitArray
(int[] nums, int m)
src/main/java/L0410_SplitArrayLargestSum.java:27
↓ 3 callersMethodsubsetsWithDup
(int[] nums)
src/main/java/L0090_SubsetsII.java:25
↓ 3 callersMethodswapPairs
(ListNode head)
src/main/java/L0024_SwapNodesInPairs.java:10
↓ 3 callersMethodthreeSum
(int[] nums)
src/main/java/L0015_ThreeSum.java:35
↓ 3 callersMethodthreeSumClosest
(int[] nums, int target)
src/main/java/L0016_ThreeSumClosest.java:21
↓ 3 callersMethodtitleToNumber
(String columnTitle)
src/main/java/L0171_ExcelSheetColumnNumber.java:35
↓ 3 callersMethodtoHex
(int num)
src/main/java/L0405_ConvertANumberToHexadecimal.java:25
↓ 3 callersMethodtoString
()
src/main/java/L0108_ConvertSortedArrayToBinarySearchTree.java:47
↓ 3 callersMethodtopKFrequent
(int[] nums, int k)
src/main/java/L0347_TopKFrequentElements.java:27
↓ 3 callersMethodtotalNQueens
(int n)
src/main/java/L0052_NQueensII.java:23
↓ 3 callersMethodtrailingZeroes
(int n)
src/main/java/L0172_FactorialTrailingZeroes.java:27
↓ 3 callersMethodtwoSum
使用哈希表存储遍历过的数字及其索引,实现 O(n) 的时间复杂度 @param nums 输入数组 @param target 目标值 @return 满足条件的下标数组 @throws IllegalArgumentException 无解时抛出异常
src/main/java/L0001_TwoSum.java:21
↓ 3 callersMethodtwoSum
(int[] numbers, int target)
src/main/java/L0167_TwoSumII.java:37
↓ 3 callersMethodvalidIPAddress
(String queryIP)
src/main/java/L0468_ValidateIPAddress.java:32
↓ 3 callersMethodvalidUtf8
(int[] data)
src/main/java/L0393_UTF8Validation.java:42
↓ 3 callersMethodverifyResult
(Node original, Node copy)
src/main/java/L0138_CopyListWithRandomPointer.java:105
↓ 3 callersMethodwiggleMaxLength
(int[] nums)
src/main/java/L0376_WiggleSubsequence.java:33
↓ 3 callersMethodwordBreak
(String s, List<String> wordDict)
src/main/java/L0139_WordBreak.java:36
↓ 3 callersMethodwordBreak
(String s, List<String> wordDict)
src/main/java/L0140_WordBreakII.java:35
↓ 3 callersMethodwordPattern
(String pattern, String s)
src/main/java/L0290_WordPattern.java:31
↓ 3 callersMethodzigzagLevelOrder
(TreeNode root)
src/main/java/L0103_BinaryTreeZigzagLevelOrderTraversal.java:66
↓ 2 callersMethodPredictTheWinner
动态规划解法 dp[i][j] 表示在 nums[i..j] 范围内,当前玩家与另一个玩家的分数之差的最大值
src/main/java/L0486_PredictTheWinner.java:37
↓ 2 callersMethodadd
(String x)
src/main/java/L0399_EvaluateDivision.java:54
↓ 2 callersMethodaddBinary
(String a, String b)
src/main/java/L0067_AddBinary.java:22
↓ 2 callersMethodaddDigits
数学方法:使用数根的概念 数根是将一个数的各个位上的数字相加,得到的数再继续各位相加,直到得到一个一位数为止 对于一个非负整数 n,它的数根 dr(n) 满足: dr(n) = 0,如果 n = 0 dr(n) = 9,如果 n ≠ 0 且 n mod 9 = 0 dr(n) = n mod 9,如
src/main/java/L0258_AddDigits.java:31
↓ 2 callersMethodaddNode
(Node node)
src/main/java/L0460_LFUCache.java:87
↓ 2 callersMethodaddNum
(int num)
src/main/java/L0480_SlidingWindowMedian.java:36
↓ 2 callersMethodaddToHead
(Node node)
src/main/java/L0146_LRUCache.java:104
↓ 2 callersMethodbinaryTreePaths
(TreeNode root)
src/main/java/L0257_BinaryTreePaths.java:44
↓ 2 callersMethodcalcEquation
(List<List<String>> equations, double[] values, List<List<String>> queries)
src/main/java/L0399_EvaluateDivision.java:105
↓ 2 callersMethodcalculateMinimumHP
(int[][] dungeon)
src/main/java/L0174_DungeonGame.java:28
↓ 2 callersMethodcanCompleteCircuit
(int[] gas, int[] cost)
src/main/java/L0134_GasStation.java:42
↓ 2 callersMethodcanCross
(int[] stones)
src/main/java/L0403_FrogJump.java:27
↓ 2 callersMethodcanFinish
(int numCourses, int[][] prerequisites)
src/main/java/L0207_CourseSchedule.java:31
↓ 2 callersMethodcandy
(int[] ratings)
src/main/java/L0135_Candy.java:28
↓ 2 callersMethodcombinationSum2
(int[] candidates, int target)
src/main/java/L0040_CombinationSumII.java:32
↓ 2 callersMethodcombinationSum4
(int[] nums, int target)
src/main/java/L0377_CombinationSumIV.java:38
↓ 2 callersMethodcombine
(int n, int k)
src/main/java/L0077_Combinations.java:23
↓ 2 callersMethodcomputeArea
(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2)
src/main/java/L0223_RectangleArea.java:21
↓ 2 callersMethodconstruct
(int[][] grid)
src/main/java/L0427_ConstructQuadTree.java:65
↓ 2 callersMethodcountBattleships
(char[][] board)
src/main/java/L0419_BattleshipsInABoard.java:20
↓ 2 callersMethodcountBits
动态规划解法 对于一个数 x,其二进制中 1 的个数与 x/2 的二进制中 1 的个数有关 如果 x 是偶数,则 x 中 1 的个数与 x/2 相同 如果 x 是奇数,则 x 中 1 的个数比 x/2 多 1 时间复杂度:O(n) 空间复杂度:O(1),不包括存储答案的空间
src/main/java/L0338_CountingBits.java:42
↓ 2 callersMethodcreateList
(int[] arr)
src/main/java/L0083_RemoveDuplicatesFromSortedList.java:53
↓ 2 callersMethodcreateList
(int[] arr)
src/main/java/L0082_RemoveDuplicatesFromSortedListII.java:66
↓ 2 callersMethoddec
(String key)
src/main/java/L0432_AllOne.java:85
↓ 2 callersMethoddeleteNode
由于无法访问头节点,我们只能访问要删除的节点 我们可以通过将下一个节点的值复制到当前节点,然后删除下一个节点来实现
src/main/java/L0237_DeleteNodeInALinkedList.java:48
↓ 2 callersMethoddeleteNode
(TreeNode root, int key)
src/main/java/L0450_DeleteNodeInBst.java:37
↓ 2 callersMethoddeserialize
(String data)
src/main/java/L0449_SerializeAndDeserializeBst.java:52
↓ 2 callersMethoddiffWaysToCompute
使用分治法计算所有可能的结果 遍历字符串中的每个运算符,将表达式分成左右两部分 递归计算左右两部分的所有可能结果,然后根据运算符组合结果
src/main/java/L0241_DifferentWaysToAddParentheses.java:41
↓ 2 callersMethodexpandAroundCenter
从中心向两边扩展,寻找最长回文子串 @param s 原始字符串 @param left 左边界 @param right 右边界 @return 以 left 和 right 为中心的最长回文子串的长度
src/main/java/L0005_LongestPalindromicSubstring.java:43
↓ 2 callersMethodfindAllConcatenatedWordsInADict
(String[] words)
src/main/java/L0472_ConcatenatedWords.java:23
↓ 2 callersMethodfindAnagrams
(String s, String p)
src/main/java/L0438_FindAllAnagramsInAString.java:26
↓ 2 callersMethodfindDiagonalOrder
模拟对角线遍历 关键点: 1. 对角线方向交替变化(右上、左下) 2. 遇到边界时改变方向
src/main/java/L0498_DiagonalTraverse.java:29
↓ 2 callersMethodfindDisappearedNumbers
(int[] nums)
src/main/java/L0448_FindAllNumbersDisappearedInAnArray.java:24
↓ 2 callersMethodfindDuplicate
使用快慢指针(Floyd 判圈算法)解决 将数组看作一个链表,nums[i] 表示下一个节点的下标 由于有重复数字,所以一定会形成环 找到环的入口就是重复的数字
src/main/java/L0287_FindTheDuplicateNumber.java:36
↓ 2 callersMethodfindFrequentTreeSum
后序遍历 + 哈希表
src/main/java/L0508_MostFrequentSubtreeSum.java:32
↓ 2 callersMethodfindItinerary
使用 Hierholzer 算法重建行程 时间复杂度:O(m log m),其中 m 是机票的数量 空间复杂度:O(m),其中 m 是机票的数量
src/main/java/L0332_ReconstructItinerary.java:37
↓ 2 callersMethodfindKthLargest
(int[] nums, int k)
src/main/java/L0215_KthLargestElementInAnArray.java:24
↓ 2 callersMethodfindKthNumber
(int n, int k)
src/main/java/L0440_KthSmallestInLexicographicalOrder.java:17
↓ 2 callersMethodfindLadders
(String beginWord, String endWord, List<String> wordList)
src/main/java/L0126_WordLadderII.java:38
↓ 2 callersMethodfindMaxForm
(String[] strs, int m, int n)
src/main/java/L0474_OnesAndZeroes.java:9
↓ 2 callersMethodfindMaximizedCapital
贪心 + 优先队列(堆) 按照资本排序,每次选择当前可以做的项目中利润最大的
src/main/java/L0502_IPO.java:47
↓ 2 callersMethodfindMode
中序遍历 BST 利用 BST 的性质,中序遍历是有序的,相同的值会连续出现
src/main/java/L0501_FindModeInBinarySearchTree.java:41
↓ 2 callersMethodfindPeakElement
(int[] nums)
src/main/java/L0162_FindPeakElement.java:29
↓ 2 callersMethodfindRelativeRanks
排序 + 哈希表
src/main/java/L0506_RelativeRanks.java:39
↓ 2 callersMethodfindRepeatedDnaSequences
使用滑动窗口和哈希集合查找重复的 DNA 序列
src/main/java/L0187_RepeatedDnaSequences.java:34
↓ 2 callersMethodfindWords
(char[][] board, String[] words)
src/main/java/L0212_WordSearchII.java:47
↓ 2 callersMethodflatten
(Node head)
src/main/java/L0430_FlattenAMultilevelDoublyLinkedList.java:47
↓ 2 callersMethodfourSumCount
(int[] nums1, int[] nums2, int[] nums3, int[] nums4)
src/main/java/L0454_FourSumII.java:31
↓ 2 callersMethodgameOfLife
(int[][] board)
src/main/java/L0289_GameOfLife.java:23
↓ 2 callersMethodgenerateTrees
(int n)
src/main/java/L0095_UniqueBinarySearchTreesII.java:46
↓ 2 callersMethodgetBucketId
(long num, long w)
src/main/java/L0220_ContainsDuplicateIII.java:73
↓ 2 callersMethodgetInteger
()
src/main/java/L0341_FlattenNestedListIterator.java:86
↓ 2 callersMethodgetList
()
src/main/java/L0341_FlattenNestedListIterator.java:90
↓ 2 callersMethodgetMaxRepetitions
(String s1, int n1, String s2, int n2)
src/main/java/L0466_CountTheRepetitions.java:29
↓ 2 callersMethodgetMedian
(int k)
src/main/java/L0480_SlidingWindowMedian.java:84
↓ 2 callersMethodgetRandom
()
src/main/java/L0380_RandomizedSet.java:56
↓ 2 callersMethodgetRandom
()
src/main/java/L0381_RandomizedCollectionWithDuplicates.java:69
↓ 2 callersMethodgetSkyline
(int[][] buildings)
src/main/java/L0218_TheSkylineProblem.java:41
↓ 2 callersMethodgreater
(int[] nums1, int i, int[] nums2, int j)
src/main/java/L0321_CreateMaximumNumber.java:99
↓ 2 callersMethodhammingDistance
(int x, int y)
src/main/java/L0461_HammingDistance.java:25
↓ 2 callersMethodhasCycle
(ListNode head)
src/main/java/L0141_LinkedListCycle.java:39
↓ 2 callersMethodhasNext
()
src/main/java/L0341_FlattenNestedListIterator.java:61
↓ 2 callersMethodinsertionSortList
(ListNode head)
src/main/java/L0147_InsertionSortList.java:34
↓ 2 callersMethodintersect
(int[] nums1, int[] nums2)
src/main/java/L0350_IntersectionOfTwoArraysII.java:33
↓ 2 callersMethodintersection
(int[] nums1, int[] nums2)
src/main/java/L0349_IntersectionOfTwoArrays.java:24
↓ 2 callersMethodinvertTree
递归解法 对于每个节点,交换其左右子树
src/main/java/L0226_InvertBinaryTree.java:72
↓ 2 callersMethodisAnagram
使用数组记录字符出现次数 由于题目说明只包含小写字母,可以使用一个长度为 26 的数组
src/main/java/L0242_ValidAnagram.java:26
↓ 2 callersMethodisHappy
哈希集合解法 使用哈希集合记录已经出现过的数字,如果出现重复说明进入循环
src/main/java/L0202_HappyNumber.java:38
↓ 2 callersMethodisHappyOptimized
快慢指针解法(推荐) 类似于链表找环,使用快慢指针检测循环
src/main/java/L0202_HappyNumber.java:66
↓ 2 callersMethodisInteger
()
src/main/java/L0341_FlattenNestedListIterator.java:82
↓ 2 callersMethodisNumber
(String s)
src/main/java/L0065_ValidNumber.java:43
↓ 2 callersMethodisPalindrome
判断字符串的子串是否是回文
src/main/java/L0336_PalindromePairs.java:94
↓ 2 callersMethodisValidSudoku
(char[][] board)
src/main/java/L0036_ValidSudoku.java:49
↓ 2 callersMethodisVowel
(char c)
src/main/java/L0345_ReverseVowelsOfString.java:55
↓ 2 callersMethodjump
(int[] nums)
src/main/java/L0045_JumpGameII.java:23
↓ 2 callersMethodkthSmallest
(TreeNode root, int k)
src/main/java/L0230_KthSmallestElementInBST.java:30
↓ 2 callersMethodladderLength
(String beginWord, String endWord, List<String> wordList)
src/main/java/L0127_WordLadder.java:34
↓ 2 callersMethodlargestBSTSubtree
查找最大 BST 子树 时间复杂度:O(n),其中 n 是树中节点的数量 空间复杂度:O(h),其中 h 是树的高度,用于递归调用栈
src/main/java/L0333_LargestBSTSubtree.java:51
← previousnext →301–400 of 1,125, ranked by callers