Skip to content

Commit 56f5f05

Browse files
JavaScalaDeveloperJavaScalaDeveloper
authored andcommitted
还原字符转换
1 parent dba68ba commit 56f5f05

File tree

198 files changed

+551
-608
lines changed
  • change/scripts
  • lcci
  • lcof2
    • 剑指 Offer II 001. 整数除法
    • 剑指 Offer II 002. 二进制加法
    • 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数
    • 剑指 Offer II 004. 只出现一次的数字
    • 剑指 Offer II 005. 单词长度的最大乘积
    • 剑指 Offer II 006. 排序数组中两个数字之和
    • 剑指 Offer II 007. 数组中和为 0 的三个数
    • 剑指 Offer II 008. 和大于等于 target 的最短子数组
    • 剑指 Offer II 009. 乘积小于 K 的子数组
    • 剑指 Offer II 010. 和为 k 的子数组
    • 剑指 Offer II 011. 0 和 1 个数相同的子数组
    • 剑指 Offer II 012. 左右两边子数组的和相等
    • 剑指 Offer II 013. 二维子矩阵的和
    • 剑指 Offer II 014. 字符串中的变位词
    • 剑指 Offer II 015. 字符串中的所有变位词
    • 剑指 Offer II 016. 不含重复字符的最长子字符串
    • 剑指 Offer II 017. 含有所有字符的最短字符串
    • 剑指 Offer II 018. 有效的回文
    • 剑指 Offer II 019. 最多删除一个字符得到回文
    • 剑指 Offer II 020. 回文子字符串的个数
    • 剑指 Offer II 021. 删除链表的倒数第 n 个结点
    • 剑指 Offer II 022. 链表中环的入口节点
    • 剑指 Offer II 023. 两个链表的第一个重合节点
    • 剑指 Offer II 024. 反转链表
    • 剑指 Offer II 025. 链表中的两数相加
    • 剑指 Offer II 026. 重排链表
    • 剑指 Offer II 027. 回文链表
    • 剑指 Offer II 028. 展平多级双向链表
    • 剑指 Offer II 029. 排序的循环链表
    • 剑指 Offer II 030. 插入、删除和随机访问都是 O(1) 的容器
    • 剑指 Offer II 031. 最近最少使用缓存
    • 剑指 Offer II 032. 有效的变位词
    • 剑指 Offer II 033. 变位词组
    • 剑指 Offer II 034. 外星语言是否排序
    • 剑指 Offer II 035. 最小时间差
    • 剑指 Offer II 036. 后缀表达式
    • 剑指 Offer II 037. 小行星碰撞
    • 剑指 Offer II 038. 每日温度
    • 剑指 Offer II 039. 直方图最大矩形面积
    • 剑指 Offer II 040. 矩阵中最大的矩形
    • 剑指 Offer II 041. 滑动窗口的平均值
    • 剑指 Offer II 042. 最近请求次数
    • 剑指 Offer II 043. 往完全二叉树添加节点
    • 剑指 Offer II 044. 二叉树每层的最大值
    • 剑指 Offer II 045. 二叉树最底层最左边的值
    • 剑指 Offer II 046. 二叉树的右侧视图
    • 剑指 Offer II 047. 二叉树剪枝
    • 剑指 Offer II 048. 序列化与反序列化二叉树
    • 剑指 Offer II 049. 从根节点到叶节点的路径数字之和
    • 剑指 Offer II 050. 向下的路径节点之和
    • 剑指 Offer II 051. 节点之和最大的路径
    • 剑指 Offer II 052. 展平二叉搜索树
    • 剑指 Offer II 053. 二叉搜索树中的中序后继
    • 剑指 Offer II 054. 所有大于等于节点的值之和
    • 剑指 Offer II 055. 二叉搜索树迭代器
    • 剑指 Offer II 056. 二叉搜索树中两个节点之和
    • 剑指 Offer II 057. 值和下标之差都在给定的范围内
    • 剑指 Offer II 058. 日程表
    • 剑指 Offer II 059. 数据流的第 K 大数值
    • 剑指 Offer II 060. 出现频率最高的 k 个数字
    • 剑指 Offer II 061. 和最小的 k 个数对
    • 剑指 Offer II 062. 实现前缀树
    • 剑指 Offer II 063. 替换单词
    • 剑指 Offer II 064. 神奇的字典
    • 剑指 Offer II 065. 最短的单词编码
    • 剑指 Offer II 066. 单词之和
    • 剑指 Offer II 067. 最大的异或
    • 剑指 Offer II 068. 查找插入位置
    • 剑指 Offer II 069. 山峰数组的顶部
    • 剑指 Offer II 070. 排序数组中只出现一次的数字
    • 剑指 Offer II 071. 按权重生成随机数
    • 剑指 Offer II 073. 狒狒吃香蕉
    • 剑指 Offer II 074. 合并区间
    • 剑指 Offer II 075. 数组相对排序
    • 剑指 Offer II 076. 数组中的第 k 大的数字
    • 剑指 Offer II 077. 链表排序
    • 剑指 Offer II 078. 合并排序链表
    • 剑指 Offer II 079. 所有子集
    • 剑指 Offer II 080. 含有 k 个元素的组合
    • 剑指 Offer II 081. 允许重复选择元素的组合
    • 剑指 Offer II 082. 含有重复元素集合的组合
    • 剑指 Offer II 083. 没有重复元素集合的全排列
    • 剑指 Offer II 084. 含有重复元素集合的全排列
    • 剑指 Offer II 085. 生成匹配的括号
    • 剑指 Offer II 086. 分割回文子字符串
    • 剑指 Offer II 087. 复原 IP
    • 剑指 Offer II 088. 爬楼梯的最少成本
    • 剑指 Offer II 089. 房屋偷盗
    • 剑指 Offer II 090. 环形房屋偷盗
    • 剑指 Offer II 091. 粉刷房子
    • 剑指 Offer II 092. 翻转字符
    • 剑指 Offer II 093. 最长斐波那契数列
    • 剑指 Offer II 094. 最少回文分割
    • 剑指 Offer II 095. 最长公共子序列
    • 剑指 Offer II 096. 字符串交织
    • 剑指 Offer II 097. 子序列的数目
    • 剑指 Offer II 098. 路径的数目
    • 剑指 Offer II 099. 最小路径之和
    • 剑指 Offer II 100. 三角形中最小路径之和
    • 剑指 Offer II 101. 分割等和子串
    • 剑指 Offer II 102. 加减的目标值
    • 剑指 Offer II 103. 最少的硬币数目
    • 剑指 Offer II 104. 排列的数目
    • 剑指 Offer II 105. 岛屿的最大面积
    • 剑指 Offer II 106. 二分图
    • 剑指 Offer II 107. 矩阵中的距离
    • 剑指 Offer II 108. 单词演变
    • 剑指 Offer II 109. 开密码锁
    • 剑指 Offer II 110. 所有路径
    • 剑指 Offer II 111. 计算除法
    • 剑指 Offer II 112. 最长递增路径
    • 剑指 Offer II 113. 课程顺序
    • 剑指 Offer II 114. 外星文字典
    • 剑指 Offer II 115. 重建序列
    • 剑指 Offer II 116. 朋友圈
    • 剑指 Offer II 117. 相似的字符串
    • 剑指 Offer II 118. 多余的边
    • 剑指 Offer II 119. 最长连续序列
  • lcof
    • 面试题03. 数组中重复的数字
    • 面试题05. 替换空格
    • 面试题06. 从尾到头打印链表
    • 面试题09. 用两个栈实现队列
    • 面试题10- II. 青蛙跳台阶问题
    • 面试题13. 机器人的运动范围
    • 面试题14- II. 剪绳子 II
    • 面试题17. 打印从1到最大的n位数
    • 面试题18. 删除链表的节点
    • 面试题21. 调整数组顺序使奇数位于偶数前面
    • 面试题24. 反转链表
    • 面试题27. 二叉树的镜像
    • 面试题28. 对称的二叉树
    • 面试题29. 顺时针打印矩阵
    • 面试题30. 包含min函数的栈
    • 面试题31. 栈的压入、弹出序列
    • 面试题32 - I. 从上到下打印二叉树
    • 面试题32 - II. 从上到下打印二叉树 II
    • 面试题32 - III. 从上到下打印二叉树 III
    • 面试题33. 二叉搜索树的后序遍历序列
    • 面试题34. 二叉树中和为某一值的路径
    • 面试题35. 复杂链表的复制
    • 面试题36. 二叉搜索树与双向链表
    • 面试题37. 序列化二叉树
    • 面试题38. 字符串的排列
    • 面试题39. 数组中出现次数超过一半的数字
    • 面试题40. 最小的k个数
    • 面试题41. 数据流中的中位数
    • 面试题42. 连续子数组的最大和
    • 面试题44. 数字序列中某一位的数字
    • 面试题45. 把数组排成最小的数
    • 面试题46. 把数字翻译成字符串
    • 面试题47. 礼物的最大价值
    • 面试题48. 最长不含重复字符的子字符串
    • 面试题49. 丑数
    • 面试题50. 第一个只出现一次的字符
    • 面试题51. 数组中的逆序对
    • 面试题52. 两个链表的第一个公共节点
    • 面试题53 - II. 0~n-1中缺失的数字
    • 面试题54. 二叉搜索树的第k大节点
    • 面试题55 - I. 二叉树的深度
    • 面试题56 - I. 数组中数字出现的次数
    • 面试题56 - II. 数组中数字出现的次数 II
    • 面试题57 - II. 和为s的连续正数序列
    • 面试题57. 和为s的两个数字
    • 面试题58 - I. 翻转单词顺序
    • 面试题58 - II. 左旋转字符串
    • 面试题59 - I. 滑动窗口的最大值
    • 面试题59 - II. 队列的最大值
    • 面试题60. n个骰子的点数
    • 面试题61. 扑克牌中的顺子
    • 面试题63. 股票的最大利润
    • 面试题64. 求1+2+…+n
    • 面试题65. 不用加减乘除做加法
    • 面试题67. 把字符串转换成整数
    • 面试题68 - I. 二叉搜索树的最近公共祖先
    • 面试题68 - II. 二叉树的最近公共祖先
  • lcp
  • solution/1600-1699/1672.Richest Customer Wealth

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

198 files changed

+551
-608
lines changed

change/scripts/MergeMdFiles.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public class MergeMdFiles {
66

77
public static void main(String[] args) throws IOException {
88
String directory = "D:\\WorkSpaces\\leetcode-all\\solution"; // 修改为目录路径
9-
String outputFile = "D:\\WorkSpaces\\leetcode-all\\change\\scripts\\out\\leetcode-v2023.md"; // 修改为输出文件路径
9+
String outputFile = "D:\\WorkSpaces\\leetcode-all\\change\\scripts\\out\\leetcode-1~1500-v2023.md"; // 修改为输出文件路径
1010

1111
File dir = new File(directory);
1212
if (!dir.exists() || !dir.isDirectory()) {
@@ -27,14 +27,14 @@ private static void mergeMdFiles(File dir, OutputStream os) throws IOException {
2727
} else if (file.isFile() && file.getName().endsWith(".md")) {
2828
// 忽略solution根目录的文件
2929
if (file.getPath().length() > 60) {
30-
// String num = file.getPath().substring(46, 50);
31-
// int no = Integer.parseInt(num);
30+
String num = file.getPath().substring(46, 50);
31+
int no = Integer.parseInt(num);
3232
// 导出前2000道
33-
// if (no <= 2000) {
33+
if (no <= 1500) {
3434
FileInputStream fis = new FileInputStream(file);
3535
copy(fis, os);
3636
fis.close();
37-
// }
37+
}
3838

3939
}
4040
}

change/scripts/MergeMdFilesByLevel.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
import java.util.stream.Collectors;
99

1010
public class MergeMdFilesByLevel {
11-
// 前1500道
12-
private static final int MAX_NUM = 1500;
11+
private final static int MAX_EXPORT_SIZE = 1500;
1312
private static final String OUTPUT_PATH = "D:\\WorkSpaces\\leetcode-all\\change\\scripts\\out\\"; // 修改为输出文件路径
1413
//题号->难度
1514
private static final Map<String, String> num2LevelMap = ParseMenu.getLineData().stream()
@@ -25,9 +24,9 @@ public static void main(String[] args) throws IOException {
2524
}
2625
Map<String, FileOutputStream> fileOutputStreamsMap = new HashMap<>();
2726
// 中等, 困难, 简单
28-
fileOutputStreamsMap.put("简单", new FileOutputStream(OUTPUT_PATH + "easy-0~" + MAX_NUM + "-v2023.md"));
29-
fileOutputStreamsMap.put("中等", new FileOutputStream(OUTPUT_PATH + "medium-0~" + MAX_NUM + "-v2023.md"));
30-
fileOutputStreamsMap.put("困难", new FileOutputStream(OUTPUT_PATH + "hard-0~" + MAX_NUM + "-v2023.md"));
27+
fileOutputStreamsMap.put("简单", new FileOutputStream(OUTPUT_PATH + "easy-1~" + MAX_EXPORT_SIZE + "-v2023.md"));
28+
fileOutputStreamsMap.put("中等", new FileOutputStream(OUTPUT_PATH + "medium-1~" + MAX_EXPORT_SIZE + "-v2023.md"));
29+
fileOutputStreamsMap.put("困难", new FileOutputStream(OUTPUT_PATH + "hard-1~" + MAX_EXPORT_SIZE + "-v2023.md"));
3130

3231
mergeMdFiles(dir, fileOutputStreamsMap);
3332
fileOutputStreamsMap.forEach((s, fileOutputStream) -> {
@@ -52,8 +51,9 @@ private static void mergeMdFiles(File dir, Map<String, FileOutputStream> fileOut
5251
if (path.length() > 60) {
5352
// 题号
5453
String num = path.substring(46, 50);
55-
int intNum = Integer.parseInt(num);
56-
if (intNum <= MAX_NUM) {
54+
int no = Integer.parseInt(num);
55+
// 导出前2000道
56+
if (no <= MAX_EXPORT_SIZE) {
5757
// 难度
5858
String level = num2LevelMap.get(num);
5959
FileOutputStream os = fileOutputStreamsMap.get(level);

lcci/01.04.Palindrome Permutation/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111

1212
<p>回文串不一定是字典当中的单词。</p>
1313

14-
<p>&nbsp;</p>
14+
1515

1616
<p><strong>示例1:</strong></p>
1717

1818
<pre><strong>输入:&quot;</strong>tactcoa&quot;
1919
<strong>输出:</strong>true(排列有&quot;tacocat&quot;&quot;atcocta&quot;,等等)
2020
</pre>
2121

22-
<p>&nbsp;</p>
22+
2323

2424
## 解法
2525

lcci/01.05.One Away/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<p>字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。</p>
99

10-
<p>&nbsp;</p>
10+
1111

1212
<p><strong>示例&nbsp;1:</strong></p>
1313

@@ -16,7 +16,7 @@ first = &quot;pale&quot;
1616
second = &quot;ple&quot;
1717
<strong>输出:</strong> True</pre>
1818

19-
<p>&nbsp;</p>
19+
2020

2121
<p><strong>示例&nbsp;2:</strong></p>
2222

lcci/01.07.Rotate Matrix/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<p>不占用额外内存空间能否做到?</p>
1111

12-
<p>&nbsp;</p>
12+
1313

1414
<p><strong>示例 1:</strong></p>
1515

lcci/01.08.Zero Matrix/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<p>编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。</p>
99

10-
<p>&nbsp;</p>
10+
1111

1212
<p><strong>示例 1:</strong></p>
1313

lcci/02.04.Partition List/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<p>你不需要&nbsp;<strong>保留</strong>&nbsp;每个分区中各节点的初始相对位置。</p>
1212

13-
<p>&nbsp;</p>
13+
1414

1515
<p><strong>示例 1:</strong></p>
1616

@@ -28,7 +28,7 @@
2828
<strong>输出</strong>:[1,2]
2929
</pre>
3030

31-
<p>&nbsp;</p>
31+
3232

3333
<p><strong>提示:</strong></p>
3434

lcci/02.05.Sum Lists/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<p>这些数位是反向存放的,也就是个位排在链表首部。</p>
1010
<p>编写函数对这两个整数求和,并用链表形式返回结果。</p>
1111

12-
<p>&nbsp;</p>
12+
1313

1414
<p><strong>示例:</strong></p>
1515

lcci/02.06.Palindrome Linked List/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<p>编写一个函数,检查输入的链表是否是回文的。</p>
99

10-
<p>&nbsp;</p>
10+
1111

1212
<p><strong>示例 1:</strong></p>
1313

@@ -21,7 +21,7 @@
2121
<strong>输出:</strong> true
2222
</pre>
2323

24-
<p>&nbsp;</p>
24+
2525

2626
<p><strong>进阶:</strong><br>
2727
你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?</p>

lcci/04.03.List of Depth/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<p>给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 <code>D</code>,则会创建出 <code>D</code> 个链表)。返回一个包含所有深度的链表的数组。</p>
99

10-
<p>&nbsp;</p>
10+
1111

1212
<p><strong>示例:</strong></p>
1313

0 commit comments

Comments
 (0)