Skip to content

pphdsny/Leetcode-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

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. 替换空格 ReplaceSpace Easy
剑指 Offer 06. 从尾到头打印链表 ReversePrint 链表 Easy
剑指 Offer 07. 重建二叉树 BuildTree DFS Medium
剑指 Offer 09. 用两个栈实现队列 CQueue 设计 Easy
剑指 Offer 10- I. 斐波那契数列 Fib Easy
剑指 Offer 10- II. 青蛙跳台阶问题 NumWays Easy
剑指 Offer 11. 旋转数组的最小数字 MinArray 二分查找 Easy
剑指 Offer 12. 矩阵中的路径 Exist DFS Medium
剑指 Offer 13. 机器人的运动范围 MovingCount Medium
剑指 Offer 14- I. 剪绳子 CuttingRope 数学动态规划 Medium
剑指 Offer 15. 二进制中1的个数 HammingWeight 位运算 Easy
剑指 Offer 16. 数值的整数次方 MyPow Medium
剑指 Offer 17. 打印从1到最大的n位数 PrintNumbers 数学 Easy
剑指 Offer 18. 删除链表的节点 DeleteNode 链表 Easy

经典题解

No 题目 解决方案 相关话题 难度 备注
#1 两数之和 TwoSum 数组哈希表 Easy
#2 两数相加 AddTwoNumbers 数组数学 Easy
#3 无重复字符的最长子串 LengthOfLongestSubstring 哈希表双指针字符串sliding window Medium
#4 寻找两个有序数组的中位数 FindMedianSortedArrays 数组二分查找分治算法 Hard 自己原始解法
#5 最长回文子串 LongestPalindrome 字符串动态规划 Medium
#6 Z 字形变换 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
#25 k个一组翻转链表 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 组合总和 II CombinationSum2 数组回溯算法 Medium
#41 缺失的第一个正数 FirstMissingPositive 数组 Medium
#42 接雨水 Trap 数组双指针 Hard
#43 字符串相乘 Multiply 数学字符串 Medium
#44 通配符匹配 IsMatch 贪心算法字符串动态规划回溯算法 Hard
#45 跳跃游戏 II Jump 贪心算法数组 Hard
#46 全排列 Permute 回溯算法 Medium
#47 全排列 II PermuteUnique 回溯算法 Medium
#48 旋转图像 Rotate 数组 Medium
#49 字母异位词分组 GroupAnagrams 哈希表字符串 Medium
#50 MyPow
#51 N皇后 SolveNQueens 回溯算法 Hard 自己原始解法
#52 N皇后 II TotalNQueens 回溯算法 Hard
#53 最大子序和 MaxSubArray.java 数组分治算法动态规划 Easy
#54 螺旋矩阵 SpiralOrder 数组 Medium
#55 跳跃游戏 CanJump 贪心算法数组 Medium
#56 合并区间 Merge 排序数组 Medium
#57 插入区间 Insert.java 排序数组 Hard
#58 最后一个单词的长度 LengthOfLastWord 字符串 Easy
#59 螺旋矩阵 II GenerateMatrix 数组 Medium
#60 第k个排列 GetPermutation 数学回溯算法 Medium
#61 旋转链表 RotateRight 链表双指针 Medium
#62 不同路径 UniquePaths 数组动态规划 Medium
#63 不同路径 II UniquePathsWithObstacles 数组动态规划 Medium
#64 最小路径和 MinPathSum 数组动态规划 Medium
#65 有效数字 IsNumber 数组字符串 Hard
#66 加一 PlusOne 数组 Easy
#67 二进制求和 AddBinary 数学字符串 Easy
#68 文本左右对齐 FullJustify 字符串 Hard
#69 x 的平方根 MySqrt 数学二分查找 Easy
#70 爬楼梯 ClimbStairs 动态规划 Easy 经典题
#71 简化路径 SimplifyPath 字符串 Medium
#72 编辑距离 MinDistance 字符串动态规划 Hard
#73 矩阵置零 SetZeroes 数组 Medium
#74 搜索二维矩阵 SearchMatrix 数组二分查找 Medium
#75 颜色分类 SortColors 排序数组双指针 Medium
#76 最小覆盖子串 MinWindow 哈希表双指针字符串sliding window Hard
#77 组合 Combine 回溯算法 Medium
#78 子集 Subsets 位运算数组回溯算法 Medium
#79 单词搜索 Exist 数组回溯算法 Medium 经典题(回溯)
#80 删除排序数组中的重复项 II RemoveDuplicates 数组双指针 Medium
#81 搜索旋转排序数组 II Search 数组二分查找 Medium
#82 删除排序链表中的重复元素 II DeleteDuplicates 链表 Medium
#83 删除排序链表中的重复元素 DeleteDuplicates 链表 Easy
#84 柱状图中最大的矩形 LargestRectangleArea 数组 Hard 经典题(栈、分治)
#85 最大矩形 MaximalRectangle 数组 Hard
#86 分隔链表 Partition 链表双指针 Medium
#87 扰乱字符串 IsScramble 字符串动态规划 Hard
#88 合并两个有序数组 Merge 数组双指针 Easy
#89 格雷编码 GrayCode 回溯算法 Medium
#90 子集 II SubsetsWithDup 数组回溯算法 Medium
#91 解码方法 NumDecodings 字符串动态规划 Medium
#92 反转链表 II ReverseBetween 链表 Medium
#93 复原IP地址 RestoreIpAddresses 字符串回溯算法 Medium
#94 二叉树的中序遍历 InorderTraversal 哈希表 Medium
#95 不同的二叉搜索树 II GenerateTrees 动态规划 Medium DP实现未想到
#96 不同的二叉搜索树 NumTrees 动态规划 Medium
#97 交错字符串 IsInterleave 字符串动态规划 Hard
#98 验证二叉搜索树 IsValidBST DFS Medium
#99 恢复二叉搜索树 RecoverTree DFS Hard
#100 相同的树 IsSameTree DFS Easy
#101 对称二叉树 IsSymmetric DFSBFS Easy
#102 二叉树的层次遍历 LevelOrder BFS Medium
#103 二叉树的锯齿形层次遍历 ZigzagLevelOrder BFS Medium
#104 二叉树的最大深度 MaxDepth DFS Easy
#105 从前序与中序遍历序列构造二叉树 BuildTree DFS数组 Medium
#106 从中序与后序遍历序列构造二叉树 BuildTree DFS数组 Medium
#107 二叉树的层次遍历 II LevelOrderBottom BFS Easy
#108 将有序数组转换为二叉搜索树 SortedArrayToBST DFS Easy
#109 有序链表转换二叉搜索树 SortedListToBST DFS链表 Medium
#110 平衡二叉树 IsBalanced DFS Easy
#111 二叉树的最小深度 MinDepth DFS Easy
#112 路径总和 HasPathSum DFS Easy
#113 路径总和 II PathSum DFS Medium
#114 二叉树展开为链表 Flatten DFS Medium
#115 不同的子序列 NumDistinct 字符串动态规划 Hard
#116 填充每个节点的下一个右侧节点指针 Connect DFS Medium
#117 填充每个节点的下一个右侧节点指针 II Connect DFS Medium
#118 杨辉三角 Generate 数组 Easy
#119 杨辉三角 II GetRow 数组 Easy
#120 三角形最小路径和 MinimumTotal 数组动态规划 Medium
#121 买卖股票的最佳时机 MaxProfit 数组动态规划 Easy
#122 买卖股票的最佳时机 II MaxProfit 贪心算法数组 Easy
#123 买卖股票的最佳时机 III MaxProfit 数组动态规划 Hard
#124 二叉树中的最大路径和 MaxPathSum DFS Hard
#125 验证回文串 //待提交 双指针字符串 Easy
#126 单词接龙 II FindLadders BFS数组字符串回溯算法 Hard
#127 单词接龙 LadderLength BFS Medium 自己原始解法
#128 最长连续序列 LongestConsecutive 并查集数组 Hard
#129 求根到叶子节点数字之和 SumNumbers DFS Medium
#130 被围绕的区域 Solve BFSDFS并查集 Medium
#131 分割回文串 Partition 回溯算法 Medium
#132 分割回文串 II MinCut 动态规划 Hard
#133 克隆图 CloneGraph BFSDFS Medium
#136 只出现一次的数字 SingleNumber 哈希表位运算 Easy 位运算了解下
#138 复制带随机指针的链表 CopyRandomList 哈希表链表 Medium
#139 单词拆分 WordBreak 动态规划 Medium 回溯实现耗时
#141 环形链表 HasCycle 链表双指针 Easy
#142 环形链表 II DetectCycle 链表双指针 Medium
#146 LRU缓存机制 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 买卖股票的最佳时机 IV MaxProfit 动态规划 Hard
#190 颠倒二进制位 ReverseBits 位运算 Easy
#198 打家劫舍 Rob 动态规划 Easy
#199 二叉树的右视图 RightSideView BFSDFS Medium
#200 岛屿的个数 NumIslands BFSDFS并查集 Medium
#203 移除链表元素 RemoveElements 链表 Easy
#206 反转链表 ReverseList 链表 Easy
#207 课程表 CanFinish BFSDFS拓扑排序 Medium
#208 实现 Trie (前缀树) Trie 设计字典树 Medium
#211 添加与搜索单词 - 数据结构设计 WordDictionary 设计字典树回溯算法 Medium
#213 打家劫舍 II Rob 动态规划 Medium
#214 最短回文串 ShortestPalindrome 字符串 Hard
#215 数组中的第K个最大元素 FindKthLargest 分治算法 Medium
#221 最大正方形 MaximalSquare 动态规划 Medium
#225 用队列实现栈 MyStack 设计 Easy
#226 翻转二叉树 InvertTree Easy 经典,要能手写
#232 用栈实现队列 MyQuene 设计 Easy
#234 回文链表 IsPalindrome 链表双指针 Easy
#236 二叉树的最近公共祖先 LowestCommonAncestor Medium
#237 删除链表中的节点 DeleteNode 链表 Easy
#238 除自身以外数组的乘积 ProductExceptSelf 数组 Medium
#239 滑动窗口最大值 MaxSlidingWindow sliding window Hard
#240 搜索二维矩阵 II SearchMatrix 数组二分查找 Medium
#264 丑数 II NthUglyNumber 数学动态规划 Medium
#279 完全平方数 NumSquares BFS数学动态规划 Medium
#283 移动零 MoveZeroes 数组双指针 Easy
#287 寻找重复数 FindDuplicate 数组双指针二分查找 Medium
#290 单词模式 WordPattern 哈希表 Easy
#297 二叉树的序列化与反序列化 Codec 设计 Hard
#300 最长上升子序列 LengthOfLIS 二分查找动态规划 Medium
#301 删除无效的括号 RemoveInvalidParentheses BFSDFS Hard
#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 打家劫舍 III Rob DFS Medium
#338 比特位计数 CountBits 位运算动态规划 Medium
#343 整数拆分 IntegerBreak 数学动态规划 Medium
#347 前 K 个高频元素 TopKFrequent 哈希表 Medium
#354 俄罗斯套娃信封问题 MaxEnvelopes.java 二分查找动态规划 Hard
#376 摆动序列 WiggleMaxLength 贪心算法动态规划 Medium
#394 字符串解码 DecodeString DFS Medium
#399 除法求值 CalcEquation 并查集 Medium
#402 移掉K位数字 RemoveKdigits 贪心算法 Medium
#406 根据身高重建队列 ReconstructQueue 贪心算法 Medium
#409 最长回文串 LongestPalindrome 哈希表 Easy
#415 字符串相加 AddStrings 字符串 Easy
#416 分割等和子集 CanPartition 动态规划 Medium
#424 替换后的最长重复字符 CharacterReplacement 双指针sliding window Medium
#432 全 O(1) 的数据结构 AllOne 设计 Hard
#437 路径总和 III PathSum Easy
#438 找到字符串中所有字母异位词 FindAnagrams 哈希表 Easy
#448 找到所有数组中消失的数字 FindDisappearedNumbers 数组 Easy
#449 序列化和反序列化二叉搜索树 Serialize_deserialize Medium
#450 删除二叉搜索树中的节点 DeleteNode Medium
#452 用最少数量的箭引爆气球 FindMinArrowShots 贪心算法 Medium
#454 四数相加 II FourSumCount 哈希表二分查找 Medium
#455 分发饼干 FindContentChildren 贪心算法 Easy
#457 环形数组循环 CircularArrayLoop 数组双指针 Medium
#460 LFU缓存 LFUCache 设计 Hard
#461 汉明距离 HammingDistance 位运算 Easy
#485 最大连续1的个数 FindMaxConsecutiveOnes 数组 Easy
#494 目标和 FindTargetSumWays 动态规划DFS Medium
#516 最长回文子序列 LongestPalindromeSubseq 动态规划 Medium
#538 把二叉搜索树转换为累加树 ConvertBST Easy
#543 二叉树的直径 DiameterOfBinaryTree Easy
#547 朋友圈 FindCircleNum DFS并查集 Medium
#560 和为K的子数组 SubarraySum 数组哈希表 Medium
#563 二叉树的坡度 FindTilt Easy
#567 字符串的排列 CheckInclusion 双指针 Medium
#581 最短无序连续子数组 FindUnsortedSubarray 数组 Easy
#617 合并二叉树 MergeTrees Easy
#621 任务调度器 LeastInterval 贪心算法队列数组 Medium
#639 解码方法 2 NumDecodings 动态规划 Hard
#647 回文子串 CountSubstrings 字符串动态规划 Medium
#653 两数之和 IV - 输入 BST FindTarget Easy
#674 最长连续递增序列 FindLengthOfLCIS 数组 Easy
#695 岛屿的最大面积 MaxAreaOfIsland DFS数组 Medium
#739 每日温度 DailyTemperatures 数组哈希表 Medium
#746 使用最小花费爬楼梯 MinCostClimbingStairs 数组动态规划 Easy
#978 最长湍流子数组 MaxTurbulenceSize 数组动态规划sliding window Medium
#1004 最大连续1的个数 III LongestOnes 双指针sliding window Medium
#1025 除数博弈 DivisorGame 数学动态规划 Easy
#1046 最后一块石头的重量 LastStoneWeight 贪心算法 Easy
#1049 最后一块石头的重量 II LastStoneWeightII 动态规划 Medium
#1051 高度检查器 HeightChecker 数组 Easy
#1052 爱生气的书店老板 MaxSatisfied 数组sliding window Medium
#1053 交换一次的先前排列 PrevPermOpt 贪心算法数组 Medium
#1054 距离相等的条形码 RearrangeBarcodes 排序 Medium
#1114 按序打印 Foo Easy
#1115 交替打印FooBar FooBar Medium
#1116 打印零与奇偶数 ZeroEvenOdd Medium
#1117 H2O 生成 H2O Medium
#1195 交替打印字符串 FizzBuzz Medium
#1226 哲学家进餐 DiningPhilosophers Medium

LCP

题目 解决方案 难度 备注
LCP 1. 猜数字 Game Easy
LCP 2. 分式化简 Fraction Easy
LCP 3. 机器人大冒险 Robot Medium
LCP 4. 覆盖 Domino Hard
LCP 5. 发 LeetCoin Bonus Hard
LCP 06. 拿硬币 MinCount Easy

Releases

No releases published

Packages

No packages published

Languages