Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

491 Commits

Repository files navigation

LeetCode-Java

说明

  • leetcode练习,坚持每天一道,目前已完成275道
  • 解题语言是Java
  • 每道题都是可编译运行的
  • 每道题有自己的方法和他人优秀解法
  • 每道题会尽量分析一下解题步骤和复杂度
  • 欢迎star、fork、交流,一起互勉
  • 微信号:pp_hdsny(寻扣友,备注leetcode)
  • 网址:https://leetcode-cn.com/

待解题目列表

剑指offer系列-持续多周,每周7题

LCP

已解题目

20190404# leetcode目前已有题目1020道,免费852道

题目类型(更新中...)

题目列表(更新中—已完成275)

Leetcode-Java(270+题解,持续更新、欢迎star&留言&交流)

剑指offer系列

题目解决方案相关话题难度备注
剑指 Offer 03. 数组中重复的数字FindRepeatNumber数组哈希表Easy
剑指 Offer 04. 二维数组中的查找FindNumberIn2DArray数组双指针Easy
剑指 Offer 05. 替换空格ReplaceSpaceEasy
剑指 Offer 06. 从尾到头打印链表ReversePrint链表Easy
剑指 Offer 07. 重建二叉树BuildTreeDFSMedium
剑指 Offer 09. 用两个栈实现队列CQueue设计Easy
剑指 Offer 10- I. 斐波那契数列FibEasy
剑指 Offer 10- II. 青蛙跳台阶问题NumWaysEasy
剑指 Offer 11. 旋转数组的最小数字MinArray二分查找Easy
剑指 Offer 12. 矩阵中的路径ExistDFSMedium
剑指 Offer 13. 机器人的运动范围MovingCountMedium
剑指 Offer 14- I. 剪绳子CuttingRope数学动态规划Medium
剑指 Offer 15. 二进制中1的个数HammingWeight位运算Easy
剑指 Offer 16. 数值的整数次方MyPowMedium
剑指 Offer 17. 打印从1到最大的n位数PrintNumbers数学Easy
剑指 Offer 18. 删除链表的节点DeleteNode链表Easy

经典题解

No题目解决方案相关话题难度备注
#1两数之和TwoSum数组哈希表Easy
#2两数相加AddTwoNumbers数组数学Easy
#3无重复字符的最长子串LengthOfLongestSubstring哈希表双指针字符串sliding windowMedium
#4寻找两个有序数组的中位数FindMedianSortedArrays数组二分查找分治算法Hard自己原始解法
#5最长回文子串LongestPalindrome字符串动态规划Medium
#6Z 字形变换Convert字符串Medium
#7整数反转Reverse数学Easy
#8字符串转换整数 (atoi)MyAtoi字符串数学Medium
#9回文数IsPalindrome数学Easy
#10正则表达式匹配IsMatch字符串动态规划回溯算法Hard自己原始解法
#11盛最多水的容器MaxArea数组双指针Medium
#12整数转罗马数字IntToRoman数学字符串Medium反向求解#13
#13罗马数字转整数RomanToInt数学字符串Easy反向求解#12
#14最长公共前缀LongestCommonPrefix字符串Easy
#15三数之和ThreeSum数组双指针Medium
#16最接近的三数之和ThreeSumClosest数组双指针Medium
#17电话号码的字母组合LetterCombinations字符串回溯算法Medium
#18四数之和FourSum数组双指针哈希表Medium
#19删除链表的倒数第N个节点RemoveNthFromEnd链表双指针Medium
#20有效的括号IsValid字符串Easy
#21合并两个有序链表MergeTwoLists链表Easy
#22括号生成GenerateParenthesis字符串回溯算法Medium
#23合并K个排序链表MergeKLists链表分治算法Hard
#24两两交换链表中的节点SwapPairs链表Medium
#25k个一组翻转链表ReverseKGroup链表Hard
#26删除排序数组中的重复项RemoveDuplicates链表双指针Easy
#27移除元素RemoveElement数组双指针Easy
#28实现strStr()StrStr双指针字符串Easy
#29两数相除Divide数学二分查找Medium
#30串联所有单词的子串FindSubstring哈希表双指针字符串Hard
#31下一个排列NextPermutation数组Medium
#32最长有效括号LongestValidParentheses字符串动态规划Hard
#33搜索旋转排序数组Search数组二分查找Medium
#34在排序数组中查找元素的第一个和最后一个位置SearchRange数组二分查找Medium
#35搜索插入位置SearchInsert数组二分查找Easy
#36有效的数独IsValidSudoku哈希表Medium
#37解数独SolveSudoku哈希表回溯算法Hard
#38报数CountAndSay字符串Easy
#39组合总和CombinationSum数组回溯算法Medium
#40组合总和 IICombinationSum2数组回溯算法Medium
#41缺失的第一个正数FirstMissingPositive数组Medium
#42接雨水Trap数组双指针Hard
#43字符串相乘Multiply数学字符串Medium
#44通配符匹配IsMatch贪心算法字符串动态规划回溯算法Hard
#45跳跃游戏 IIJump贪心算法数组Hard
#46全排列Permute回溯算法Medium
#47全排列 IIPermuteUnique回溯算法Medium
#48旋转图像Rotate数组Medium
#49字母异位词分组GroupAnagrams哈希表字符串Medium
#50MyPow
#51N皇后SolveNQueens回溯算法Hard自己原始解法
#52N皇后 IITotalNQueens回溯算法Hard
#53最大子序和MaxSubArray.java数组分治算法动态规划Easy
#54螺旋矩阵SpiralOrder数组Medium
#55跳跃游戏CanJump贪心算法数组Medium
#56合并区间Merge排序数组Medium
#57插入区间Insert.java排序数组Hard
#58最后一个单词的长度LengthOfLastWord字符串Easy
#59螺旋矩阵 IIGenerateMatrix数组Medium
#60第k个排列GetPermutation数学回溯算法Medium
#61旋转链表RotateRight链表双指针Medium
#62不同路径UniquePaths数组动态规划Medium
#63不同路径 IIUniquePathsWithObstacles数组动态规划Medium
#64最小路径和MinPathSum数组动态规划Medium
#65有效数字IsNumber数组字符串Hard
#66加一PlusOne数组Easy
#67二进制求和AddBinary数学字符串Easy
#68文本左右对齐FullJustify字符串Hard
#69x 的平方根MySqrt数学二分查找Easy
#70爬楼梯ClimbStairs动态规划Easy经典题
#71简化路径SimplifyPath字符串Medium
#72编辑距离MinDistance字符串动态规划Hard
#73矩阵置零SetZeroes数组Medium
#74搜索二维矩阵SearchMatrix数组二分查找Medium
#75颜色分类SortColors排序数组双指针Medium
#76最小覆盖子串MinWindow哈希表双指针字符串sliding windowHard
#77组合Combine回溯算法Medium
#78子集Subsets位运算数组回溯算法Medium
#79单词搜索Exist数组回溯算法Medium经典题(回溯)
#80删除排序数组中的重复项 IIRemoveDuplicates数组双指针Medium
#81搜索旋转排序数组 IISearch数组二分查找Medium
#82删除排序链表中的重复元素 IIDeleteDuplicates链表Medium
#83删除排序链表中的重复元素DeleteDuplicates链表Easy
#84柱状图中最大的矩形LargestRectangleArea数组Hard经典题(栈、分治)
#85最大矩形MaximalRectangle数组Hard
#86分隔链表Partition链表双指针Medium
#87扰乱字符串IsScramble字符串动态规划Hard
#88合并两个有序数组Merge数组双指针Easy
#89格雷编码GrayCode回溯算法Medium
#90子集 IISubsetsWithDup数组回溯算法Medium
#91解码方法NumDecodings字符串动态规划Medium
#92反转链表 IIReverseBetween链表Medium
#93复原IP地址RestoreIpAddresses字符串回溯算法Medium
#94二叉树的中序遍历InorderTraversal哈希表Medium
#95不同的二叉搜索树 IIGenerateTrees动态规划MediumDP实现未想到
#96不同的二叉搜索树NumTrees动态规划Medium
#97交错字符串IsInterleave字符串动态规划Hard
#98验证二叉搜索树IsValidBSTDFSMedium
#99恢复二叉搜索树RecoverTreeDFSHard
#100相同的树IsSameTreeDFSEasy
#101对称二叉树IsSymmetricDFSBFSEasy
#102二叉树的层次遍历LevelOrderBFSMedium
#103二叉树的锯齿形层次遍历ZigzagLevelOrderBFSMedium
#104二叉树的最大深度MaxDepthDFSEasy
#105从前序与中序遍历序列构造二叉树BuildTreeDFS数组Medium
#106从中序与后序遍历序列构造二叉树BuildTreeDFS数组Medium
#107二叉树的层次遍历 IILevelOrderBottomBFSEasy
#108将有序数组转换为二叉搜索树SortedArrayToBSTDFSEasy
#109有序链表转换二叉搜索树SortedListToBSTDFS链表Medium
#110平衡二叉树IsBalancedDFSEasy
#111二叉树的最小深度MinDepthDFSEasy
#112路径总和HasPathSumDFSEasy
#113路径总和 IIPathSumDFSMedium
#114二叉树展开为链表FlattenDFSMedium
#115不同的子序列NumDistinct字符串动态规划Hard
#116填充每个节点的下一个右侧节点指针ConnectDFSMedium
#117填充每个节点的下一个右侧节点指针 IIConnectDFSMedium
#118杨辉三角Generate数组Easy
#119杨辉三角 IIGetRow数组Easy
#120三角形最小路径和MinimumTotal数组动态规划Medium
#121买卖股票的最佳时机MaxProfit数组动态规划Easy
#122买卖股票的最佳时机 IIMaxProfit贪心算法数组Easy
#123买卖股票的最佳时机 IIIMaxProfit数组动态规划Hard
#124二叉树中的最大路径和MaxPathSumDFSHard
#125验证回文串//待提交双指针字符串Easy
#126单词接龙 IIFindLaddersBFS数组字符串回溯算法Hard
#127单词接龙LadderLengthBFSMedium自己原始解法
#128最长连续序列LongestConsecutive并查集数组Hard
#129求根到叶子节点数字之和SumNumbersDFSMedium
#130被围绕的区域SolveBFSDFS并查集Medium
#131分割回文串Partition回溯算法Medium
#132分割回文串 IIMinCut动态规划Hard
#133克隆图CloneGraphBFSDFSMedium
#136只出现一次的数字SingleNumber哈希表位运算Easy位运算了解下
#138复制带随机指针的链表CopyRandomList哈希表链表Medium
#139单词拆分WordBreak动态规划Medium回溯实现耗时
#141环形链表HasCycle链表双指针Easy
#142环形链表 IIDetectCycle链表双指针Medium
#146LRU缓存机制LRUCache设计Hard
#147对链表进行插入排序InsertionSortList排序链表Medium
#148排序链表SortList.java排序链表Medium
#151翻转字符串里的单词ReverseWords字符串Medium自己原始解法
#152乘积最大子序列MaxProduct数组动态规划Medium
#155最小栈MinStack设计Easy
#160相交链表GetIntersectionNode链表Easy
#167两数之和 II - 输入有序数组TwoSum链表双指针二分查找Easy
#169求众数MajorityElement位运算数组分治算法Easy
#174地下城游戏CalculateMinimumHP二分查找动态规划Hard
#187重复的DNA序列FindRepeatedDnaSequences位运算哈希表Medium
#188买卖股票的最佳时机 IVMaxProfit动态规划Hard
#190颠倒二进制位ReverseBits位运算Easy
#198打家劫舍Rob动态规划Easy
#199二叉树的右视图RightSideViewBFSDFSMedium
#200岛屿的个数NumIslandsBFSDFS并查集Medium
#203移除链表元素RemoveElements链表Easy
#206反转链表ReverseList链表Easy
#207课程表CanFinishBFSDFS拓扑排序Medium
#208实现 Trie (前缀树)Trie设计字典树Medium
#211添加与搜索单词 - 数据结构设计WordDictionary设计字典树回溯算法Medium
#213打家劫舍 IIRob动态规划Medium
#214最短回文串ShortestPalindrome字符串Hard
#215数组中的第K个最大元素FindKthLargest分治算法Medium
#221最大正方形MaximalSquare动态规划Medium
#225用队列实现栈MyStack设计Easy
#226翻转二叉树InvertTreeEasy经典,要能手写
#232用栈实现队列MyQuene设计Easy
#234回文链表IsPalindrome链表双指针Easy
#236二叉树的最近公共祖先LowestCommonAncestorMedium
#237删除链表中的节点DeleteNode链表Easy
#238除自身以外数组的乘积ProductExceptSelf数组Medium
#239滑动窗口最大值MaxSlidingWindowsliding windowHard
#240搜索二维矩阵 IISearchMatrix数组二分查找Medium
#264丑数 IINthUglyNumber数学动态规划Medium
#279完全平方数NumSquaresBFS数学动态规划Medium
#283移动零MoveZeroes数组双指针Easy
#287寻找重复数FindDuplicate数组双指针二分查找Medium
#290单词模式WordPattern哈希表Easy
#297二叉树的序列化与反序列化Codec设计Hard
#300最长上升子序列LengthOfLIS二分查找动态规划Medium
#301删除无效的括号RemoveInvalidParenthesesBFSDFSHard
#303区域和检索 - 数组不可变NumArray动态规划Easy
#304二维区域和检索 - 矩阵不可变NumMatrix动态规划Medium
#307区域和检索 - 数组可修改NumArray树状数组线段树Medium
#309最佳买卖股票时机含冷冻期MaxProfit动态规划Medium
#312戳气球MaxCoins分治算法动态规划Hard
#315计算右侧小于当前元素的个数CountSmaller树状数组线段树二叉搜索树分治算法Hard
#322零钱兑换CoinChange动态规划Medium
#328奇偶链表OddEvenList链表Medium
#336回文对PalindromePairs字典树哈希表字符串Hard
#337打家劫舍 IIIRobDFSMedium
#338比特位计数CountBits位运算动态规划Medium
#343整数拆分IntegerBreak数学动态规划Medium
#347前 K 个高频元素TopKFrequent哈希表Medium
#354俄罗斯套娃信封问题MaxEnvelopes.java二分查找动态规划Hard
#376摆动序列WiggleMaxLength贪心算法动态规划Medium
#394字符串解码DecodeStringDFSMedium
#399除法求值CalcEquation并查集Medium
#402移掉K位数字RemoveKdigits贪心算法Medium
#406根据身高重建队列ReconstructQueue贪心算法Medium
#409最长回文串LongestPalindrome哈希表Easy
#415字符串相加AddStrings字符串Easy
#416分割等和子集CanPartition动态规划Medium
#424替换后的最长重复字符CharacterReplacement双指针sliding windowMedium
#432全 O(1) 的数据结构AllOne设计Hard
#437路径总和 IIIPathSumEasy
#438找到字符串中所有字母异位词FindAnagrams哈希表Easy
#448找到所有数组中消失的数字FindDisappearedNumbers数组Easy
#449序列化和反序列化二叉搜索树Serialize_deserializeMedium
#450删除二叉搜索树中的节点DeleteNodeMedium
#452用最少数量的箭引爆气球FindMinArrowShots贪心算法Medium
#454四数相加 IIFourSumCount哈希表二分查找Medium
#455分发饼干FindContentChildren贪心算法Easy
#457环形数组循环CircularArrayLoop数组双指针Medium
#460LFU缓存LFUCache设计Hard
#461汉明距离HammingDistance位运算Easy
#485最大连续1的个数FindMaxConsecutiveOnes数组Easy
#494目标和FindTargetSumWays动态规划DFSMedium
#516最长回文子序列LongestPalindromeSubseq动态规划Medium
#538把二叉搜索树转换为累加树ConvertBSTEasy
#543二叉树的直径DiameterOfBinaryTreeEasy
#547朋友圈FindCircleNumDFS并查集Medium
#560和为K的子数组SubarraySum数组哈希表Medium
#563二叉树的坡度FindTiltEasy
#567字符串的排列CheckInclusion双指针Medium
#581最短无序连续子数组FindUnsortedSubarray数组Easy
#617合并二叉树MergeTreesEasy
#621任务调度器LeastInterval贪心算法队列数组Medium
#639解码方法 2NumDecodings动态规划Hard
#647回文子串CountSubstrings字符串动态规划Medium
#653两数之和 IV - 输入 BSTFindTargetEasy
#674最长连续递增序列FindLengthOfLCIS数组Easy
#695岛屿的最大面积MaxAreaOfIslandDFS数组Medium
#739每日温度DailyTemperatures数组哈希表Medium
#746使用最小花费爬楼梯MinCostClimbingStairs数组动态规划Easy
#978最长湍流子数组MaxTurbulenceSize数组动态规划sliding windowMedium
#1004最大连续1的个数 IIILongestOnes双指针sliding windowMedium
#1025除数博弈DivisorGame数学动态规划Easy
#1046最后一块石头的重量LastStoneWeight贪心算法Easy
#1049最后一块石头的重量 IILastStoneWeightII动态规划Medium
#1051高度检查器HeightChecker数组Easy
#1052爱生气的书店老板MaxSatisfied数组sliding windowMedium
#1053交换一次的先前排列PrevPermOpt贪心算法数组Medium
#1054距离相等的条形码RearrangeBarcodes排序Medium
#1114按序打印FooEasy
#1115交替打印FooBarFooBarMedium
#1116打印零与奇偶数ZeroEvenOddMedium
#1117H2O 生成H2OMedium
#1195交替打印字符串FizzBuzzMedium
#1226哲学家进餐DiningPhilosophersMedium

LCP

题目解决方案难度备注
LCP 1. 猜数字GameEasy
LCP 2. 分式化简FractionEasy
LCP 3. 机器人大冒险RobotMedium
LCP 4. 覆盖DominoHard
LCP 5. 发 LeetCoinBonusHard
LCP 06. 拿硬币MinCountEasy

About

leetcode-java,updating!

Topics

Resources

Stars

168 stars

Watchers

11 watching

Forks

Releases

Packages

Used by

Contributors

Languages