Skip to content

liudufu/Leetcode-Java

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode-Java

说明

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

待解题目列表

2020春节放假停更,祝大家越码越溜~

已解题目

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

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

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

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

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

LCP

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

About

leetcode-java,updating!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%