Skip to content

utopfish/LeetCodeCamp

Repository files navigation

文件目录:
python/LCP/力扣杯
python/sword2offer/剑指offer
python/odds/搜集的奇特,有趣题目解法

题号 题目 分类 难度 语言 备注
0001 两数之和 hash 简单 java,python,js
0002 两数相加 链表,数学 中等 python
0003 无重复字符的最长子串 字符串,滑动窗口 中等 java,python
0004 寻找两个正序数组的中位数 分治法 困难 java(未完善)
0005 最长回文子串 字符串,动态规划 中等 java
0006 Z 字形变换 字符串 中等 java,python
0007 整数反转 数学 中等 java
0008 字符串转换整数 (atoi) 字符串 中等 python
0017 电话号码的字母组合 DFS,组合,回溯 中等 java
0024 两两交换链表中的节点 链表 中等 java
0031 下一个排列 数组,排列 中等 java 有点难想
0036 有效的数独 数独,hash 中等 java,python
0039 组合总和 递归 中等 java
0041 缺失的第一个正数 原地hash 困难 java
0042 接雨水 动态规划 困难 Java
0051 N皇后 N皇后,搜索,回溯 困难 java,python
0052 N皇后2 N皇后,搜索,回溯 困难 python
0057 插入区间 数组,排序 伪难题 python
0067 二进制求和 字符串 简单 python
0463 岛屿的周长 DFS 简单 java
0116 填充每个节点的下一个右侧节点指针 链表,树 中等 java,python
0124 二叉树中的最大路径和 DFS,字节真题 困难 java
0129 求根到叶子节点数字之和 二叉树,遍历 中等 java
0143 重排链表 链表,重排 中等 java
0144 二叉树的前序遍历 二叉树,遍历 中等 python
0234 回文链表 链表,回文 简单 java
0239 滑动窗口最大值 滑动窗口,删除队列,优先队列 困难 java
0402 移掉K位数字 中等 python 一招吃四题
0406 根据身高重建队列 排序 中等 java 自定义排序规则
0514 自由之路 DFS,辐射4 困难 java 事多划水过,有时间好好看
0763 划分字母区间 字符串 中等 java
0844 比较含退格的字符串 字符串 简单 java
0845 数组中的最长山脉 数组,双指针 中等 java
0925 长按键入 字符串,模式匹配 简单 java
0973 最接近原点的K个点 排序,根堆 中等 java
0977 有序数组的平方 数组,双指针 简单 java
1002 查找常用字符 字符串,hash 简单 python
1024 视频拼接 动态规划 中等 java
1030 距离顺序排列矩阵单元格 桶排序 简单 java
1207 独一无二的出现次数 hash 简单 java
1365 有多少小于当前数字的数字 数组 简单 java
剑指 offer03 数组中重复的数字 hash 简单 python
剑指 offer04 二维数组中的查找 数组 简单 python
剑指 offer24 反转链表 链表,双指针,递归 简单 java
剑指 offer25 合并两个排序的链表 链表 简单 python
剑指 offer10 I. 斐波那契数列 斐波那契数 简单 python
剑指 offer59 滑动窗口的最大值 滑动窗口 简单 python
剑指 offer60 n个骰子的点数 骰子 简单 python
LCP5548 最小体力消耗路径 最短路径,bfs 中等 python
LCP5556 可以到达的最远建筑 优先队列,小根堆 中等 python
LCP5563 销售价值减少的颜色球 除余法,二分查找 中等 python
LCP5564 通过指令创建有序数组 前序和,fenwick tree 困难 python
LCP5602 将x减到0的最小操作数 前序和 中等 python
LCP5604 最大化网格幸福感 DP 困难 python 等大佬给答案,未完成

动态规划

题号 题目 分类 难度 语言 备注
0673 最长递增子序列的个数 DP 中等 java
0072 编辑距离 DP 困难 java 0673
0139 单词拆分 DP 中等 python
0140 单词拆分 II DP 困难 python 0139
0300 最长上升子序列 DP 中等 java 二分查找,tails数组
0123 买卖股票的最佳时机III DP 困难 java 困难水题

双指针

题号 题目 分类 难度 语言 备注
0941 有效的山脉数组 双指针 简单 java
0015 三数之和 数组,双指针 中等 python
0018 四数之和 数组,双指针 中等 python 0018
0019 删除链表的倒数第N个节点 链表,双指针 中等 js,java,python,c++

匹配

题号 题目 分类 难度 语言 备注
0010 正则表达式匹配 正则匹配 困难 java

广度优先遍历

题号 题目 分类 难度 语言 备注
0127 单词接龙 BFS 中等 java

位运算

题号 题目 分类 难度 语言 备注
1356 根据数字二进制下1的数目排序 位运算,快排 简单 java bitCount源码

前序和

题号 题目 分类 难度 语言 备注
0327 区间和的个数 前序和 困难 c++ 没能做出来,前序和+归并排序部分没看懂
0525 连续数组 前序和 中等 java 没能做出来,前序和+哈希表

背包问题

题号 题目 分类 难度 语言 备注
0474 一和零 动态规划,背包 中等 java 滚动数组,从后往前方法进行空间优化

并查集

并查集能解决的问题BSF和DSF基本都能解决,但是只求连通性相关而不必知道路径的问题,并查集相对来说更方便。

题号 题目 分类 难度 语言 备注
0399 一和零 并查集 中等 java 并查集的典型问题
547 省份数量 并查集 中等 java
684
1319
1631
959
1202
947
721
803
1579
778

算法部分

  • 分治 Divide Conquer
  • 宽度优先搜索 Breadth First Search
  • 深度优先搜索 Depth First Search
  • 回溯法 Backtracking
  • 双指针 Two Pointers
  • 动态规划 Dynamic Programming
  • 扫描线 Scan-line algorithm
  • 快排 Quick Sort

数据结构部分

  • 栈 Stack
  • 队列 Queue
  • 链表 Linked List
  • 数组 Array
  • 哈希表 Hash Table
  • 二叉树 Binary Tree
  • 堆 Heap
  • 并查集 Union Find
  • 字典树 Trie