Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f7d0ee1

Browse files
committed
feat: add new lc/lcof problems
1 parent dc8e7d5 commit f7d0ee1

File tree

148 files changed

+11307
-5
lines changed
  • 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 072. 求平方根
    • 剑指 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. 最长连续序列
  • solution

Some content is hidden

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

148 files changed

+11307
-5
lines changed

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
- [LeetCode](./solution/README.md)
3030
- [LeetCode 《剑指 Offer(第 2 版)》](./lcof/README.md)
31+
- [LeetCode 《剑指 Offer(专项突击版)》](./lcof2/README.md)
3132
- [LeetCode 《程序员面试金典(第 6 版)》](./lcci/README.md)
3233

3334
## 基础算法通关

‎lcof2/README.md‎

Lines changed: 137 additions & 0 deletions
Large diffs are not rendered by default.

‎lcof2/lcof2.jpg‎

71.5 KB
Loading[フレーム]

‎lcof2/summary.md‎

Lines changed: 120 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# [剑指 Offer II 001. 整数除法](https://leetcode-cn.com/problems/xoh6Oh)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
<p>给定两个整数 <code>a</code> 和 <code>b</code> ,求它们的除法的商 <code>a/b</code> ,要求不得使用乘号 <code>'*'</code>、除号 <code>'/'</code> 以及求余符号 <code>'%'</code>&nbsp;。</p>
8+
9+
<p>&nbsp;</p>
10+
11+
<p><strong>注意:</strong></p>
12+
13+
<ul>
14+
<li>整数除法的结果应当截去(<code>truncate</code>)其小数部分,例如:<code>truncate(8.345) = 8</code>&nbsp;以及&nbsp;<code>truncate(-2.7335) = -2</code></li>
15+
<li>假设我们的环境只能存储 32 位有符号整数,其数值范围是 <code>[−2<sup>31</sup>,&nbsp;2<sup>31</sup>−1]</code>。本题中,如果除法结果溢出,则返回 <code>2<sup>31&nbsp;</sup>− 1</code></li>
16+
</ul>
17+
18+
<p>&nbsp;</p>
19+
20+
<p><strong>示例 1:</strong></p>
21+
22+
<pre>
23+
<strong>输入:</strong>a = 15, b = 2
24+
<strong>输出:</strong>7
25+
<strong><span style="white-space: pre-wrap;">解释:</span></strong>15/2 = truncate(7.5) = 7
26+
</pre>
27+
28+
<p><strong>示例 2:</strong></p>
29+
30+
<pre>
31+
<strong>输入:</strong>a = 7, b = -3
32+
<strong>输出:</strong><span style="white-space: pre-wrap;">0</span>
33+
<strong><span style="white-space: pre-wrap;">解释:</span></strong>7/-3 = truncate(-2.33333..) = -2</pre>
34+
35+
<p><strong>示例 3:</strong></p>
36+
37+
<pre>
38+
<strong>输入:</strong>a = 0, b = 1
39+
<strong>输出:</strong><span style="white-space: pre-wrap;">0</span></pre>
40+
41+
<p><strong>示例 4:</strong></p>
42+
43+
<pre>
44+
<strong>输入:</strong>a = 1, b = 1
45+
<strong>输出:</strong><span style="white-space: pre-wrap;">1</span></pre>
46+
47+
<p>&nbsp;</p>
48+
49+
<p><strong>提示:</strong></p>
50+
51+
<ul>
52+
<li><code>-2<sup>31</sup>&nbsp;&lt;= a, b &lt;= 2<sup>31</sup>&nbsp;- 1</code></li>
53+
<li><code>b != 0</code></li>
54+
</ul>
55+
56+
<p>&nbsp;</p>
57+
58+
<p>注意:本题与主站 29&nbsp;题相同:<a href="https://leetcode-cn.com/problems/divide-two-integers/">https://leetcode-cn.com/problems/divide-two-integers/</a></p>
59+
60+
<p>&nbsp;</p>
61+
62+
63+
## 解法
64+
65+
<!-- 这里可写通用的实现逻辑 -->
66+
67+
<!-- tabs:start -->
68+
69+
### **Python3**
70+
71+
<!-- 这里可写当前语言的特殊实现逻辑 -->
72+
73+
```python
74+
75+
```
76+
77+
### **Java**
78+
79+
<!-- 这里可写当前语言的特殊实现逻辑 -->
80+
81+
```java
82+
83+
```
84+
85+
### **...**
86+
87+
```
88+
89+
```
90+
91+
<!-- tabs:end -->
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# [剑指 Offer II 002. 二进制加法](https://leetcode-cn.com/problems/JFETK5)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
<p>给定两个 01 字符串&nbsp;<code>a</code>&nbsp;&nbsp;<code>b</code>&nbsp;,请计算它们的和,并以二进制字符串的形式输出。</p>
8+
9+
<p>输入为 <strong>非空 </strong>字符串且只包含数字&nbsp;<code>1</code>&nbsp;&nbsp;<code>0</code>。</p>
10+
11+
<p>&nbsp;</p>
12+
13+
<p><strong>示例&nbsp;1:</strong></p>
14+
15+
<pre>
16+
<strong>输入:</strong> a = &quot;11&quot;, b = &quot;10&quot;
17+
<strong>输出:</strong> &quot;101&quot;</pre>
18+
19+
<p><strong>示例&nbsp;2:</strong></p>
20+
21+
<pre>
22+
<strong>输入:</strong> a = &quot;1010&quot;, b = &quot;1011&quot;
23+
<strong>输出:</strong> &quot;10101&quot;</pre>
24+
25+
<p>&nbsp;</p>
26+
27+
<p><strong>提示:</strong></p>
28+
29+
<ul>
30+
<li>每个字符串仅由字符 <code>&#39;0&#39;</code> 或 <code>&#39;1&#39;</code> 组成。</li>
31+
<li><code>1 &lt;= a.length, b.length &lt;= 10^4</code></li>
32+
<li>字符串如果不是 <code>&quot;0&quot;</code> ,就都不含前导零。</li>
33+
</ul>
34+
35+
<p>&nbsp;</p>
36+
37+
<p><meta charset="UTF-8" />注意:本题与主站 67&nbsp;题相同:<a href="https://leetcode-cn.com/problems/add-binary/">https://leetcode-cn.com/problems/add-binary/</a></p>
38+
39+
40+
## 解法
41+
42+
<!-- 这里可写通用的实现逻辑 -->
43+
44+
<!-- tabs:start -->
45+
46+
### **Python3**
47+
48+
<!-- 这里可写当前语言的特殊实现逻辑 -->
49+
50+
```python
51+
52+
```
53+
54+
### **Java**
55+
56+
<!-- 这里可写当前语言的特殊实现逻辑 -->
57+
58+
```java
59+
60+
```
61+
62+
### **...**
63+
64+
```
65+
66+
```
67+
68+
<!-- tabs:end -->
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# [剑指 Offer II 003. 前 n 个数字二进制中 1 的个数](https://leetcode-cn.com/problems/w3tCBm)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
<p>给定一个非负整数 <code>n</code><b>&nbsp;</b>,请计算 <code>0</code> 到 <code>n</code> 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。</p>
8+
9+
<p>&nbsp;</p>
10+
11+
<p><strong>示例 1:</strong></p>
12+
13+
<pre>
14+
<strong>输入: </strong>n =<strong> </strong>2
15+
<strong>输出: </strong>[0,1,1]
16+
<strong>解释:
17+
</strong>0 --&gt; 0
18+
1 --&gt; 1
19+
2 --&gt; 10
20+
</pre>
21+
22+
<p><strong>示例&nbsp;2:</strong></p>
23+
24+
<pre>
25+
<strong>输入: </strong>n =<strong> </strong>5
26+
<strong>输出: </strong><code>[0,1,1,2,1,2]
27+
</code><span style="white-space: pre-wrap;"><strong>解释:</strong>
28+
</span>0 --&gt; 0
29+
1 --&gt; 1
30+
2 --&gt; 10
31+
3 --&gt; 11
32+
4 --&gt; 100
33+
5 --&gt; 101
34+
</pre>
35+
36+
<p>&nbsp;</p>
37+
38+
<p><strong>说明 :</strong></p>
39+
40+
<ul>
41+
<li><code>0 &lt;= n &lt;= 10<sup>5</sup></code></li>
42+
</ul>
43+
44+
<p>&nbsp;</p>
45+
46+
<p><strong>进阶:</strong></p>
47+
48+
<ul>
49+
<li>给出时间复杂度为&nbsp;<code>O(n*sizeof(integer))</code><strong>&nbsp;</strong>的解答非常容易。但你可以在线性时间&nbsp;<code>O(n)</code><strong>&nbsp;</strong>内用一趟扫描做到吗?</li>
50+
<li>要求算法的空间复杂度为&nbsp;<code>O(n)</code>&nbsp;。</li>
51+
<li>你能进一步完善解法吗?要求在C++或任何其他语言中不使用任何内置函数(如 C++ 中的&nbsp;<code>__builtin_popcount</code><strong>&nbsp;</strong>)来执行此操作。</li>
52+
</ul>
53+
54+
<p>&nbsp;</p>
55+
56+
<p><meta charset="UTF-8" />注意:本题与主站 338&nbsp;题相同:<a href="https://leetcode-cn.com/problems/counting-bits/">https://leetcode-cn.com/problems/counting-bits/</a></p>
57+
58+
59+
## 解法
60+
61+
<!-- 这里可写通用的实现逻辑 -->
62+
63+
<!-- tabs:start -->
64+
65+
### **Python3**
66+
67+
<!-- 这里可写当前语言的特殊实现逻辑 -->
68+
69+
```python
70+
71+
```
72+
73+
### **Java**
74+
75+
<!-- 这里可写当前语言的特殊实现逻辑 -->
76+
77+
```java
78+
79+
```
80+
81+
### **...**
82+
83+
```
84+
85+
```
86+
87+
<!-- tabs:end -->
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# [剑指 Offer II 004. 只出现一次的数字](https://leetcode-cn.com/problems/WGki4K)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
<p>给你一个整数数组&nbsp;<code>nums</code> ,除某个元素仅出现 <strong>一次</strong> 外,其余每个元素都恰出现 <strong>三次 。</strong>请你找出并返回那个只出现了一次的元素。</p>
8+
9+
<p>&nbsp;</p>
10+
11+
<p><strong>示例 1:</strong></p>
12+
13+
<pre>
14+
<strong>输入:</strong>nums = [2,2,3,2]
15+
<strong>输出:</strong>3
16+
</pre>
17+
18+
<p><strong>示例 2:</strong></p>
19+
20+
<pre>
21+
<strong>输入:</strong>nums = [0,1,0,1,0,1,100]
22+
<strong>输出:</strong>100
23+
</pre>
24+
25+
<p>&nbsp;</p>
26+
27+
<p><strong>提示:</strong></p>
28+
29+
<ul>
30+
<li><code>1 &lt;= nums.length &lt;= 3 * 10<sup>4</sup></code></li>
31+
<li><code>-2<sup>31</sup> &lt;= nums[i] &lt;= 2<sup>31</sup> - 1</code></li>
32+
<li><code>nums</code> 中,除某个元素仅出现 <strong>一次</strong> 外,其余每个元素都恰出现 <strong>三次</strong></li>
33+
</ul>
34+
35+
<p>&nbsp;</p>
36+
37+
<p><strong>进阶:</strong>你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?</p>
38+
39+
<p>&nbsp;</p>
40+
41+
<p><meta charset="UTF-8" />注意:本题与主站 137&nbsp;题相同:<a href="https://leetcode-cn.com/problems/single-number-ii/">https://leetcode-cn.com/problems/single-number-ii/</a></p>
42+
43+
44+
## 解法
45+
46+
<!-- 这里可写通用的实现逻辑 -->
47+
48+
<!-- tabs:start -->
49+
50+
### **Python3**
51+
52+
<!-- 这里可写当前语言的特殊实现逻辑 -->
53+
54+
```python
55+
56+
```
57+
58+
### **Java**
59+
60+
<!-- 这里可写当前语言的特殊实现逻辑 -->
61+
62+
```java
63+
64+
```
65+
66+
### **...**
67+
68+
```
69+
70+
```
71+
72+
<!-- tabs:end -->

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /