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 树、DFS、BFS 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 BFS、DFS、并查集 Medium
#131 分割回文串 Partition 回溯算法 Medium
#132 分割回文串 II MinCut 动态规划 Hard
#133 克隆图 CloneGraph BFS、DFS、图 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 树、BFS、DFS Medium
#200 岛屿的个数 NumIslands BFS、DFS、并查集 Medium
#203 移除链表元素 RemoveElements 链表 Easy
#206 反转链表 ReverseList 链表 Easy
#207 课程表 CanFinish BFS、DFS、图、拓扑排序 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 BFS、DFS 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

Leetcode Java

leetcode-java,updating!

Leetcode Java Info

⭐ Stars174
🔗 Source Codegithub.com
🕒 Last Updatea year ago
🕒 Created7 years ago
🐞 Open Issues0
➗ Star-Issue RatioInfinity
😎 Authorpphdsny