<commit_before># LeetCode-Java
[![LICENSE](https://img.shields.io/badge/license-NPL%20(The%20996%20Prohibited%20License)-blue.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE)
[![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu)

## 说明
- leetcode练习，坚持每天一道，目前已完成175道
- 解题语言是Java
- 每道题都是可编译运行的
- 每道题有自己的方法和他人优秀解法
- 每道题会尽量分析一下解题步骤和复杂度
- 欢迎star、fork、交流，一起互勉
- 微信号：pp_hdsny（备注leetcode）
- 网址：https://leetcode-cn.com/
## 本周待解题目列表

开始扫题

- [x] [41. 缺失的第一个正数 -Hard](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_41_firstMissingPositive.java)

- [x]  [48. 旋转图像 -Medium](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_48_rotate.java)

- [x]  [50. Pow(x, n) -Medium](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_50_myPow.java)

- [ ]  [54. 螺旋矩阵 -Medium](https://leetcode-cn.com/problems/spiral-matrix/)

- [ ]  [57. 插入区间 -Hard](https://leetcode-cn.com/problems/insert-interval/)

- [ ]  [58. 最后一个单词的长度 -Easy](https://leetcode-cn.com/problems/length-of-last-word/)

- [ ]  [59. 螺旋矩阵 II -Medium](https://leetcode-cn.com/problems/spiral-matrix-ii/)

## 已解题目

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

### 题目类型（更新中）

- [数组](<https://leetcode-cn.com/tag/array/>)（168）
- [哈希表](<https://leetcode-cn.com/tag/hash-table/>)（102）
- [动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>)（133）
- [双指针](<https://leetcode-cn.com/tag/two-pointers/>)（56）
- [字符串](<https://leetcode-cn.com/tag/string/>)（122）
- [数学](<https://leetcode-cn.com/tag/math/>)（126）
- [sliding window](<https://leetcode-cn.com/tag/sliding-window/>)（12）
- [二分查找](<https://leetcode-cn.com/tag/binary-search/>)（62）
- [分治算法](<https://leetcode-cn.com/tag/divide-and-conquer/>)（18）
- [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)（41）
- [链表](https://leetcode-cn.com/tag/linked-list/)（35）
- [堆](https://leetcode-cn.com/tag/heap/)（32）
- [栈](https://leetcode-cn.com/tag/stack/)（47）
- [贪心算法](https://leetcode-cn.com/tag/greedy/)（50）
- [排序](https://leetcode-cn.com/tag/sort/)（24）
- [位运算](https://leetcode-cn.com/tag/bit-manipulation/)（32）
- [树](https://leetcode-cn.com/tag/tree/)（107）
- [BFS](https://leetcode-cn.com/tag/breadth-first-search/)（48）
- [DFS](https://leetcode-cn.com/tag/depth-first-search/)（96）
- [并查集](https://leetcode-cn.com/tag/union-find/)（22）
- [设计](https://leetcode-cn.com/tag/design/)（38）
- [图](https://leetcode-cn.com/tag/graph/)（24）
- [拓扑排序](https://leetcode-cn.com/tag/topological-sort/)（5）
- [树状数组](https://leetcode-cn.com/tag/binary-indexed-tree/)（5）
- [线段树](https://leetcode-cn.com/tag/segment-tree/)（9）
- [二叉搜索树](https://leetcode-cn.com/tag/binary-search-tree/)（15）

### 题目列表（更新中--已完成175）

​	

| No    | 题目                                                         | 解决方案                                                     | 相关话题                                                     | 难度   | remark                                                       |
| ----- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------ | ------------------------------------------------------------ |
| #1    | [两数之和](https://leetcode-cn.com/problems/two-sum)         | [TwoSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_1_twoSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[哈希表](<https://leetcode-cn.com/tag/hash-table/>) | Easy   |                                                              |
| #2    | [两数相加](https://leetcode-cn.com/problems/add-two-numbers/) | [AddTwoNumbers](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_2_addTwoNumbers.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[数学](<https://leetcode-cn.com/tag/math/>) | Easy   |                                                              |
| #3    | [无重复字符的最长子串](https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/) | [LengthOfLongestSubstring](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_3_lengthOfLongestSubstring.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>)、[字符串](<https://leetcode-cn.com/tag/string/>)、[sliding window](<https://leetcode-cn.com/tag/sliding-window/>) | Medium |                                                              |
| #4    | [寻找两个有序数组的中位数](https://leetcode-cn.com/problems/median-of-two-sorted-arrays/) | [FindMedianSortedArrays](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_4_findMedianSortedArrays_2.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>)、[分治算法](<https://leetcode-cn.com/tag/divide-and-conquer/>) | Hard   | [自己原始解法](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_4_findMedianSortedArrays.java) |
| #5    | [最长回文子串](https://leetcode-cn.com/problems/longest-palindromic-substring/) | [LongestPalindrome](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_5_longestPalindrome.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Medium |                                                              |
| #6    | [Z 字形变换](https://leetcode-cn.com/problems/zigzag-conversion/) | [Convert](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_6_convert_2.java) | [字符串](<https://leetcode-cn.com/tag/string/>)              | Medium |                                                              |
| #7    | [整数反转](https://leetcode-cn.com/problems/reverse-integer/) | [Reverse](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_7_reverse.java) | [数学](<https://leetcode-cn.com/tag/math/>)                  | Easy   |                                                              |
| #8    | [字符串转换整数 (atoi)](https://leetcode-cn.com/problems/string-to-integer-atoi/) | [MyAtoi](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_8_myAtoi.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[数学](<https://leetcode-cn.com/tag/math/>) | Medium |                                                              |
| #9    | [回文数](https://leetcode-cn.com/problems/palindrome-number/) | [IsPalindrome](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_9_isPalindrome.java) | [数学](<https://leetcode-cn.com/tag/math/>)                  | Easy   |                                                              |
| #10   | [正则表达式匹配](https://leetcode-cn.com/problems/regular-expression-matching/) | [IsMatch](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_10_isMatch_2.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Hard   | [自己原始解法](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_10_isMatch.java) |
| #11   | [盛最多水的容器](https://leetcode-cn.com/problems/container-with-most-water/) | [MaxArea](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_11_maxArea.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #12   | [整数转罗马数字](https://leetcode-cn.com/problems/integer-to-roman/) | [IntToRoman](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_12_intToRoman.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Medium | 反向求解#13                                                  |
| #13   | [罗马数字转整数](https://leetcode-cn.com/problems/roman-to-integer/) | [RomanToInt](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_13_romanToInt.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Easy   | 反向求解#12                                                  |
| #14   | [最长公共前缀](https://leetcode-cn.com/problems/longest-common-prefix/) | [LongestCommonPrefix](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_14_longestCommonPrefix.java) | [字符串](<https://leetcode-cn.com/tag/string/>)              | Easy   |                                                              |
| #15   | [三数之和](https://leetcode-cn.com/problems/3sum/)           | [ThreeSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_15_threeSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #16   | [最接近的三数之和](https://leetcode-cn.com/problems/3sum-closest/) | [ThreeSumClosest](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_16_threeSumClosest.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #17   | [电话号码的字母组合](https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/) | [LetterCombinations](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_17_letterCombinations.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #18   | [四数之和](https://leetcode-cn.com/problems/4sum/)           | [FourSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_18_fourSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>)、[哈希表](<https://leetcode-cn.com/tag/hash-table/>) | Medium |                                                              |
| #19   | [删除链表的倒数第N个节点](https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/) | [RemoveNthFromEnd](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_19_RemoveNthFromEnd.java) | [链表](https://leetcode-cn.com/tag/linked-list/)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #20   | [有效的括号](https://leetcode-cn.com/problems/valid-parentheses/) | [IsValid](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_20_isValid.java) | [栈](https://leetcode-cn.com/tag/stack/)、[字符串](<https://leetcode-cn.com/tag/string/>) | Easy   |                                                              |
| #21   | [合并两个有序链表](https://leetcode-cn.com/problems/merge-two-sorted-lists/) | [MergeTwoLists](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_21_MergeTwoLists.java) | [链表](https://leetcode-cn.com/tag/linked-list/)             | Easy   |                                                              |
| #22   | [括号生成](https://leetcode-cn.com/problems/generate-parentheses/) | [GenerateParenthesis](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_22_generateParenthesis.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #23   | [合并K个排序链表](https://leetcode-cn.com/problems/merge-k-sorted-lists/) | [MergeKLists](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_23_mergeKLists.java) | [堆](https://leetcode-cn.com/tag/heap/)、[链表](https://leetcode-cn.com/tag/linked-list/)、[分治算法](<https://leetcode-cn.com/tag/divide-and-conquer/>) | Hard   |                                                              |
| #24   | [两两交换链表中的节点](https://leetcode-cn.com/problems/swap-nodes-in-pairs/) | [SwapPairs](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_24_SwapPairs.java) | [链表](https://leetcode-cn.com/tag/linked-list/)             | Medium |                                                              |
| #25   | [k个一组翻转链表](https://leetcode-cn.com/problems/reverse-nodes-in-k-group/) | [ReverseKGroup](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_25_reverseKGroup.java) | [链表](https://leetcode-cn.com/tag/linked-list/)             | Hard   |                                                              |
| #26   | [删除排序数组中的重复项](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/) | [RemoveDuplicates](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_26_removeDuplicates.java) | [链表](https://leetcode-cn.com/tag/linked-list/)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Easy   |                                                              |
| #27   | [移除元素](https://leetcode-cn.com/problems/remove-element/) | [RemoveElement](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_27_removeElement.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Easy   |                                                              |
| #28   | [实现strStr()](https://leetcode-cn.com/problems/implement-strstr/) | [StrStr](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_28_strStr.java) | [双指针](<https://leetcode-cn.com/tag/two-pointers/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Easy   |                                                              |
| #29   | [两数相除](https://leetcode-cn.com/problems/divide-two-integers/) | [Divide](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_29_divide.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Medium |                                                              |
| #30   | [串联所有单词的子串](https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/) | [FindSubstring](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_30_findSubstring.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Hard   |                                                              |
| #31   | [下一个排列](https://leetcode-cn.com/problems/next-permutation/) | [NextPermutation](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_31_nextPermutation.java) | [数组](<https://leetcode-cn.com/tag/array/>)                 | Medium |                                                              |
| #32   | [最长有效括号](https://leetcode-cn.com/problems/longest-valid-parentheses/) | [LongestValidParentheses](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_32_longestValidParentheses.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Hard   |                                                              |
| #33   | [搜索旋转排序数组](https://leetcode-cn.com/problems/search-in-rotated-sorted-array/) | [Search](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_33_search.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Medium |                                                              |
| #34   | [在排序数组中查找元素的第一个和最后一个位置](https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/) | [SearchRange](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_34_searchRange.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Medium |                                                              |
| #35   | [搜索插入位置](https://leetcode-cn.com/problems/search-insert-position/) | [SearchInsert](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_35_searchInsert.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Easy   |                                                              |
| #36   | [有效的数独](https://leetcode-cn.com/problems/valid-sudoku/) | [IsValidSudoku](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_36_isValidSudoku.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)          | Medium |                                                              |
| #37   | [解数独](https://leetcode-cn.com/problems/sudoku-solver/)    | [SolveSudoku](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_37_solveSudoku.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Hard   |                                                              |
| #38   | [报数](https://leetcode-cn.com/problems/count-and-say/)      | [CountAndSay](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_38_countAndSay.java) | [字符串](<https://leetcode-cn.com/tag/string/>)              | Easy   |                                                              |
| #39   | [组合总和](https://leetcode-cn.com/problems/combination-sum/) | [CombinationSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_39_combinationSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #40   | [组合总和 II](https://leetcode-cn.com/problems/combination-sum-ii/) | [CombinationSum2](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_40_combinationSum2.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #41   | [缺失的第一个正数](https://leetcode-cn.com/problems/first-missing-positive/) | [FirstMissingPositive](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_41_firstMissingPositive.java) | [数组](<https://leetcode-cn.com/tag/array/>)                 | Medium |                                                              |
| #42   | [接雨水](https://leetcode-cn.com/problems/trapping-rain-water/) | [Trap](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_42_trap.java) | [栈](https://leetcode-cn.com/tag/stack/)、[数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Hard   |                                                              |
| #43   | [字符串相乘](https://leetcode-cn.com/problems/multiply-strings/) | [Multiply](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_43_multiply.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Medium |                                                              |
| #44   | [通配符匹配](https://leetcode-cn.com/problems/wildcard-matching/) | [IsMatch](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_44_isMatch.java) | [贪心算法](https://leetcode-cn.com/tag/greedy/)、[字符串](<https://leetcode-cn.com/tag/string/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Hard   |                                                              |
| #45   | [跳跃游戏 II](https://leetcode-cn.com/problems/jump-game-ii/) | [Jump](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_45_jump.java) | [贪心算法](https://leetcode-cn.com/tag/greedy/)、[数组](<https://leetcode-cn.com/tag/array/>) | Hard   |                                                              |
| #46   | [全排列](https://leetcode-cn.com/problems/permutations/)     | [Permute](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_46_permute.java) | [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)      | Medium |                                                              |
| #47   | [全排列 II](https://leetcode-cn.com/problems/permutations-ii/) | [PermuteUnique](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_47_permuteUnique.java) | [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)      | Medium |                                                              |
| #48   | [旋转图像](https://leetcode-cn.com/problems/rotate-image/)   | [Rotate](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_48_rotate.java) | [数组](<https://leetcode-cn.com/tag/array/>)                 | Medium |                                                              |
| #49   | [字母异位词分组](https://leetcode-cn.com/problems/group-anagrams/) | [GroupAnagrams](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_49_groupAnagrams.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Medium |                                                              |
| #50   |                                                              | [MyPow](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_50_myPow.java) |                                                              |        |                                                              |
| #51   | [N皇后](https://leetcode-cn.com/problems/n-queens/)          | [SolveNQueens](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_51_solveNQueens_2.java) | [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)      | Hard   | [自己原始解法](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_51_solveNQueens.java) |
| #52   | [N皇后 II](https://leetcode-cn.com/problems/n-queens-ii/)    | [TotalNQueens](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_52_totalNQueens.java) | [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)      | Hard   |                                                              |
| #53   | [最大子序和](https://leetcode-cn.com/problems/maximum-subarray/) | [MaxSubArray.java](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_53_maxSubArray.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[分治算法](<https://leetcode-cn.com/tag/divide-and-conquer/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Easy   |                                                              |
| #55   | [跳跃游戏](https://leetcode-cn.com/problems/jump-game/)      | [CanJump](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_55_canJump.java) | [贪心算法](https://leetcode-cn.com/tag/greedy/)、[数组](<https://leetcode-cn.com/tag/array/>) | Medium |                                                              |
| #56   | [合并区间](https://leetcode-cn.com/problems/merge-intervals/) | [Merge](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_56_merge.java) | [排序](https://leetcode-cn.com/tag/sort/)、[数组](<https://leetcode-cn.com/tag/array/>) | Medium |                                                              |
| #60   | [第k个排列](https://leetcode-cn.com/problems/permutation-sequence/) | [GetPermutation](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_60_getPermutation_m.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #61   | [旋转链表](https://leetcode-cn.com/problems/rotate-list/)    | [RotateRight](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_61_RotateRight.java) | [链表](https://leetcode-cn.com/tag/linked-list/)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #62   | [不同路径](https://leetcode-cn.com/problems/unique-paths/)   | [UniquePaths](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_62_uniquePaths.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Medium |                                                              |
| #63   | [不同路径 II](https://leetcode-cn.com/problems/unique-paths-ii/) | [UniquePathsWithObstacles](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_63_uniquePathsWithObstacles.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Medium |                                                              |
| #64   | [最小路径和](https://leetcode-cn.com/problems/minimum-path-sum/) | [MinPathSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_64_minPathSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Medium |                                                              |
| #69   | [x 的平方根](https://leetcode-cn.com/problems/sqrtx/)        | [MySqrt](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_69_mySqrt.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Easy   |                                                              |<commit_msg>docs: add _54_spiralOrder<commit_after># LeetCode-Java
[![LICENSE](https://img.shields.io/badge/license-NPL%20(The%20996%20Prohibited%20License)-blue.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE)
[![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu)

## 说明
- leetcode练习，坚持每天一道，目前已完成176道
- 解题语言是Java
- 每道题都是可编译运行的
- 每道题有自己的方法和他人优秀解法
- 每道题会尽量分析一下解题步骤和复杂度
- 欢迎star、fork、交流，一起互勉
- 微信号：pp_hdsny（备注leetcode）
- 网址：https://leetcode-cn.com/
## 本周待解题目列表

开始扫题

- [x] [41. 缺失的第一个正数 -Hard](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_41_firstMissingPositive.java)

- [x]  [48. 旋转图像 -Medium](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_48_rotate.java)

- [x]  [50. Pow(x, n) -Medium](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_50_myPow.java)

- [x]  [54. 螺旋矩阵 -Medium](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_54_spiralOrder.java)

- [ ]  [57. 插入区间 -Hard](https://leetcode-cn.com/problems/insert-interval/)

- [ ]  [58. 最后一个单词的长度 -Easy](https://leetcode-cn.com/problems/length-of-last-word/)

- [ ]  [59. 螺旋矩阵 II -Medium](https://leetcode-cn.com/problems/spiral-matrix-ii/)

## 已解题目

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

### 题目类型（更新中）

- [数组](<https://leetcode-cn.com/tag/array/>)（168）
- [哈希表](<https://leetcode-cn.com/tag/hash-table/>)（102）
- [动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>)（133）
- [双指针](<https://leetcode-cn.com/tag/two-pointers/>)（56）
- [字符串](<https://leetcode-cn.com/tag/string/>)（122）
- [数学](<https://leetcode-cn.com/tag/math/>)（126）
- [sliding window](<https://leetcode-cn.com/tag/sliding-window/>)（12）
- [二分查找](<https://leetcode-cn.com/tag/binary-search/>)（62）
- [分治算法](<https://leetcode-cn.com/tag/divide-and-conquer/>)（18）
- [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)（41）
- [链表](https://leetcode-cn.com/tag/linked-list/)（35）
- [堆](https://leetcode-cn.com/tag/heap/)（32）
- [栈](https://leetcode-cn.com/tag/stack/)（47）
- [贪心算法](https://leetcode-cn.com/tag/greedy/)（50）
- [排序](https://leetcode-cn.com/tag/sort/)（24）
- [位运算](https://leetcode-cn.com/tag/bit-manipulation/)（32）
- [树](https://leetcode-cn.com/tag/tree/)（107）
- [BFS](https://leetcode-cn.com/tag/breadth-first-search/)（48）
- [DFS](https://leetcode-cn.com/tag/depth-first-search/)（96）
- [并查集](https://leetcode-cn.com/tag/union-find/)（22）
- [设计](https://leetcode-cn.com/tag/design/)（38）
- [图](https://leetcode-cn.com/tag/graph/)（24）
- [拓扑排序](https://leetcode-cn.com/tag/topological-sort/)（5）
- [树状数组](https://leetcode-cn.com/tag/binary-indexed-tree/)（5）
- [线段树](https://leetcode-cn.com/tag/segment-tree/)（9）
- [二叉搜索树](https://leetcode-cn.com/tag/binary-search-tree/)（15）

### 题目列表（更新中--已完成175）

​	[数组](<https://leetcode-cn.com/tag/array/>)  Medium  

| No    | 题目                                                         | 解决方案                                                     | 相关话题                                                     | 难度   | remark                                                       |
| ----- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------ | ------------------------------------------------------------ |
| #1    | [两数之和](https://leetcode-cn.com/problems/two-sum)         | [TwoSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_1_twoSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[哈希表](<https://leetcode-cn.com/tag/hash-table/>) | Easy   |                                                              |
| #2    | [两数相加](https://leetcode-cn.com/problems/add-two-numbers/) | [AddTwoNumbers](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_2_addTwoNumbers.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[数学](<https://leetcode-cn.com/tag/math/>) | Easy   |                                                              |
| #3    | [无重复字符的最长子串](https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/) | [LengthOfLongestSubstring](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_3_lengthOfLongestSubstring.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>)、[字符串](<https://leetcode-cn.com/tag/string/>)、[sliding window](<https://leetcode-cn.com/tag/sliding-window/>) | Medium |                                                              |
| #4    | [寻找两个有序数组的中位数](https://leetcode-cn.com/problems/median-of-two-sorted-arrays/) | [FindMedianSortedArrays](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_4_findMedianSortedArrays_2.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>)、[分治算法](<https://leetcode-cn.com/tag/divide-and-conquer/>) | Hard   | [自己原始解法](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_4_findMedianSortedArrays.java) |
| #5    | [最长回文子串](https://leetcode-cn.com/problems/longest-palindromic-substring/) | [LongestPalindrome](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_5_longestPalindrome.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Medium |                                                              |
| #6    | [Z 字形变换](https://leetcode-cn.com/problems/zigzag-conversion/) | [Convert](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_6_convert_2.java) | [字符串](<https://leetcode-cn.com/tag/string/>)              | Medium |                                                              |
| #7    | [整数反转](https://leetcode-cn.com/problems/reverse-integer/) | [Reverse](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_7_reverse.java) | [数学](<https://leetcode-cn.com/tag/math/>)                  | Easy   |                                                              |
| #8    | [字符串转换整数 (atoi)](https://leetcode-cn.com/problems/string-to-integer-atoi/) | [MyAtoi](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_8_myAtoi.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[数学](<https://leetcode-cn.com/tag/math/>) | Medium |                                                              |
| #9    | [回文数](https://leetcode-cn.com/problems/palindrome-number/) | [IsPalindrome](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_9_isPalindrome.java) | [数学](<https://leetcode-cn.com/tag/math/>)                  | Easy   |                                                              |
| #10   | [正则表达式匹配](https://leetcode-cn.com/problems/regular-expression-matching/) | [IsMatch](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_10_isMatch_2.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Hard   | [自己原始解法](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_10_isMatch.java) |
| #11   | [盛最多水的容器](https://leetcode-cn.com/problems/container-with-most-water/) | [MaxArea](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_11_maxArea.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #12   | [整数转罗马数字](https://leetcode-cn.com/problems/integer-to-roman/) | [IntToRoman](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_12_intToRoman.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Medium | 反向求解#13                                                  |
| #13   | [罗马数字转整数](https://leetcode-cn.com/problems/roman-to-integer/) | [RomanToInt](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_13_romanToInt.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Easy   | 反向求解#12                                                  |
| #14   | [最长公共前缀](https://leetcode-cn.com/problems/longest-common-prefix/) | [LongestCommonPrefix](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_14_longestCommonPrefix.java) | [字符串](<https://leetcode-cn.com/tag/string/>)              | Easy   |                                                              |
| #15   | [三数之和](https://leetcode-cn.com/problems/3sum/)           | [ThreeSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_15_threeSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #16   | [最接近的三数之和](https://leetcode-cn.com/problems/3sum-closest/) | [ThreeSumClosest](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_16_threeSumClosest.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #17   | [电话号码的字母组合](https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/) | [LetterCombinations](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_17_letterCombinations.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #18   | [四数之和](https://leetcode-cn.com/problems/4sum/)           | [FourSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_18_fourSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>)、[哈希表](<https://leetcode-cn.com/tag/hash-table/>) | Medium |                                                              |
| #19   | [删除链表的倒数第N个节点](https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/) | [RemoveNthFromEnd](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_19_RemoveNthFromEnd.java) | [链表](https://leetcode-cn.com/tag/linked-list/)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #20   | [有效的括号](https://leetcode-cn.com/problems/valid-parentheses/) | [IsValid](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_20_isValid.java) | [栈](https://leetcode-cn.com/tag/stack/)、[字符串](<https://leetcode-cn.com/tag/string/>) | Easy   |                                                              |
| #21   | [合并两个有序链表](https://leetcode-cn.com/problems/merge-two-sorted-lists/) | [MergeTwoLists](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_21_MergeTwoLists.java) | [链表](https://leetcode-cn.com/tag/linked-list/)             | Easy   |                                                              |
| #22   | [括号生成](https://leetcode-cn.com/problems/generate-parentheses/) | [GenerateParenthesis](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_22_generateParenthesis.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #23   | [合并K个排序链表](https://leetcode-cn.com/problems/merge-k-sorted-lists/) | [MergeKLists](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_23_mergeKLists.java) | [堆](https://leetcode-cn.com/tag/heap/)、[链表](https://leetcode-cn.com/tag/linked-list/)、[分治算法](<https://leetcode-cn.com/tag/divide-and-conquer/>) | Hard   |                                                              |
| #24   | [两两交换链表中的节点](https://leetcode-cn.com/problems/swap-nodes-in-pairs/) | [SwapPairs](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_24_SwapPairs.java) | [链表](https://leetcode-cn.com/tag/linked-list/)             | Medium |                                                              |
| #25   | [k个一组翻转链表](https://leetcode-cn.com/problems/reverse-nodes-in-k-group/) | [ReverseKGroup](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_25_reverseKGroup.java) | [链表](https://leetcode-cn.com/tag/linked-list/)             | Hard   |                                                              |
| #26   | [删除排序数组中的重复项](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/) | [RemoveDuplicates](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_26_removeDuplicates.java) | [链表](https://leetcode-cn.com/tag/linked-list/)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Easy   |                                                              |
| #27   | [移除元素](https://leetcode-cn.com/problems/remove-element/) | [RemoveElement](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_27_removeElement.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Easy   |                                                              |
| #28   | [实现strStr()](https://leetcode-cn.com/problems/implement-strstr/) | [StrStr](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_28_strStr.java) | [双指针](<https://leetcode-cn.com/tag/two-pointers/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Easy   |                                                              |
| #29   | [两数相除](https://leetcode-cn.com/problems/divide-two-integers/) | [Divide](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_29_divide.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Medium |                                                              |
| #30   | [串联所有单词的子串](https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/) | [FindSubstring](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_30_findSubstring.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Hard   |                                                              |
| #31   | [下一个排列](https://leetcode-cn.com/problems/next-permutation/) | [NextPermutation](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_31_nextPermutation.java) | [数组](<https://leetcode-cn.com/tag/array/>)                 | Medium |                                                              |
| #32   | [最长有效括号](https://leetcode-cn.com/problems/longest-valid-parentheses/) | [LongestValidParentheses](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_32_longestValidParentheses.java) | [字符串](<https://leetcode-cn.com/tag/string/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Hard   |                                                              |
| #33   | [搜索旋转排序数组](https://leetcode-cn.com/problems/search-in-rotated-sorted-array/) | [Search](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_33_search.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Medium |                                                              |
| #34   | [在排序数组中查找元素的第一个和最后一个位置](https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/) | [SearchRange](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_34_searchRange.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Medium |                                                              |
| #35   | [搜索插入位置](https://leetcode-cn.com/problems/search-insert-position/) | [SearchInsert](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_35_searchInsert.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Easy   |                                                              |
| #36   | [有效的数独](https://leetcode-cn.com/problems/valid-sudoku/) | [IsValidSudoku](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_36_isValidSudoku.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)          | Medium |                                                              |
| #37   | [解数独](https://leetcode-cn.com/problems/sudoku-solver/)    | [SolveSudoku](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_37_solveSudoku.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Hard   |                                                              |
| #38   | [报数](https://leetcode-cn.com/problems/count-and-say/)      | [CountAndSay](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_38_countAndSay.java) | [字符串](<https://leetcode-cn.com/tag/string/>)              | Easy   |                                                              |
| #39   | [组合总和](https://leetcode-cn.com/problems/combination-sum/) | [CombinationSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_39_combinationSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #40   | [组合总和 II](https://leetcode-cn.com/problems/combination-sum-ii/) | [CombinationSum2](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_40_combinationSum2.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #41   | [缺失的第一个正数](https://leetcode-cn.com/problems/first-missing-positive/) | [FirstMissingPositive](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_41_firstMissingPositive.java) | [数组](<https://leetcode-cn.com/tag/array/>)                 | Medium |                                                              |
| #42   | [接雨水](https://leetcode-cn.com/problems/trapping-rain-water/) | [Trap](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_42_trap.java) | [栈](https://leetcode-cn.com/tag/stack/)、[数组](<https://leetcode-cn.com/tag/array/>)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Hard   |                                                              |
| #43   | [字符串相乘](https://leetcode-cn.com/problems/multiply-strings/) | [Multiply](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_43_multiply.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Medium |                                                              |
| #44   | [通配符匹配](https://leetcode-cn.com/problems/wildcard-matching/) | [IsMatch](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_44_isMatch.java) | [贪心算法](https://leetcode-cn.com/tag/greedy/)、[字符串](<https://leetcode-cn.com/tag/string/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Hard   |                                                              |
| #45   | [跳跃游戏 II](https://leetcode-cn.com/problems/jump-game-ii/) | [Jump](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_45_jump.java) | [贪心算法](https://leetcode-cn.com/tag/greedy/)、[数组](<https://leetcode-cn.com/tag/array/>) | Hard   |                                                              |
| #46   | [全排列](https://leetcode-cn.com/problems/permutations/)     | [Permute](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_46_permute.java) | [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)      | Medium |                                                              |
| #47   | [全排列 II](https://leetcode-cn.com/problems/permutations-ii/) | [PermuteUnique](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_47_permuteUnique.java) | [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)      | Medium |                                                              |
| #48   | [旋转图像](https://leetcode-cn.com/problems/rotate-image/)   | [Rotate](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_48_rotate.java) | [数组](<https://leetcode-cn.com/tag/array/>)                 | Medium |                                                              |
| #49   | [字母异位词分组](https://leetcode-cn.com/problems/group-anagrams/) | [GroupAnagrams](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_49_groupAnagrams.java) | [哈希表](<https://leetcode-cn.com/tag/hash-table/>)、[字符串](<https://leetcode-cn.com/tag/string/>) | Medium |                                                              |
| #50   |                                                              | [MyPow](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_50_myPow.java) |                                                              |        |                                                              |
| #51   | [N皇后](https://leetcode-cn.com/problems/n-queens/)          | [SolveNQueens](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_51_solveNQueens_2.java) | [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)      | Hard   | [自己原始解法](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_51_solveNQueens.java) |
| #52   | [N皇后 II](https://leetcode-cn.com/problems/n-queens-ii/)    | [TotalNQueens](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_52_totalNQueens.java) | [回溯算法](<https://leetcode-cn.com/tag/backtracking/>)      | Hard   |                                                              |
| #53   | [最大子序和](https://leetcode-cn.com/problems/maximum-subarray/) | [MaxSubArray.java](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_53_maxSubArray.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[分治算法](<https://leetcode-cn.com/tag/divide-and-conquer/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Easy   |                                                              |
| #54   | [螺旋矩阵](https://leetcode-cn.com/problems/spiral-matrix/)  | [SpiralOrder](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_54_spiralOrder.java) | [数组](<https://leetcode-cn.com/tag/array/>)                 | Medium |                                                              |
| #55   | [跳跃游戏](https://leetcode-cn.com/problems/jump-game/)      | [CanJump](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_55_canJump.java) | [贪心算法](https://leetcode-cn.com/tag/greedy/)、[数组](<https://leetcode-cn.com/tag/array/>) | Medium |                                                              |
| #56   | [合并区间](https://leetcode-cn.com/problems/merge-intervals/) | [Merge](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_56_merge.java) | [排序](https://leetcode-cn.com/tag/sort/)、[数组](<https://leetcode-cn.com/tag/array/>) | Medium |                                                              |
| #60   | [第k个排列](https://leetcode-cn.com/problems/permutation-sequence/) | [GetPermutation](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_60_getPermutation_m.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[回溯算法](<https://leetcode-cn.com/tag/backtracking/>) | Medium |                                                              |
| #61   | [旋转链表](https://leetcode-cn.com/problems/rotate-list/)    | [RotateRight](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_61_RotateRight.java) | [链表](https://leetcode-cn.com/tag/linked-list/)、[双指针](<https://leetcode-cn.com/tag/two-pointers/>) | Medium |                                                              |
| #62   | [不同路径](https://leetcode-cn.com/problems/unique-paths/)   | [UniquePaths](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_62_uniquePaths.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Medium |                                                              |
| #63   | [不同路径 II](https://leetcode-cn.com/problems/unique-paths-ii/) | [UniquePathsWithObstacles](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_63_uniquePathsWithObstacles.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Medium |                                                              |
| #64   | [最小路径和](https://leetcode-cn.com/problems/minimum-path-sum/) | [MinPathSum](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_64_minPathSum.java) | [数组](<https://leetcode-cn.com/tag/array/>)、[动态规划](<https://leetcode-cn.com/tag/dynamic-programming/>) | Medium |                                                              |
| #69   | [x 的平方根](https://leetcode-cn.com/problems/sqrtx/)        | [MySqrt](https://github.com/pphdsny/Leetcode-Java/blob/master/src/pp/arithmetic/leetcode/_69_mySqrt.java) | [数学](<https://leetcode-cn.com/tag/math/>)、[二分查找](<https://leetcode-cn.com/tag/binary-search/>) | Easy   |                                                              |
{'fraction_non_alphanumeric': 0.2022213192469186, 'fraction_numerical': 0.014318608386060642, 'mean_word_length': 2.14903728978796, 'pattern_counts': {'":': 0, '<': 227, '<?xml version=': 0, '>': 229, 'https://': 558, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 269, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '549638', 'n_tokens_mistral': 19698, 'n_tokens_neox': 19645, 'n_words': 802}