@@ -6,9 +6,9 @@ Tag : 「双指针」、「滑动窗口」、「二分」、「前缀和」
66
77
88
9- 给定一个由若干 0 和 1 组成的数组 A ,我们最多可以将 K 个值从 0 变成 1 。
9+ 给定一个由若干 0ドル$ 和 1ドル$ 组成的数组 ` A ` ,我们最多可以将 $K$ 个值从 0ドル$ 变成 1ドル$ 。
1010
11- 返回仅包含 1 的最长(连续)子数组的长度。
11+ 返回仅包含 1ドル$ 的最长(连续)子数组的长度。
1212
1313
1414示例 1:
@@ -29,9 +29,9 @@ Tag : 「双指针」、「滑动窗口」、「二分」、「前缀和」
2929```
3030
3131提示:
32- * 1 <= A.length <= 20000
33- * 0 <= K <= A.length
34- * A[ i] 为 0 或 1
32+ * $ 1 <= A.length <= 20000$
33+ * $ 0 <= K <= A.length$
34+ * $ A[ i] $ 为 0ドル$ 或 1ドル$
3535
3636---
3737
@@ -51,7 +51,7 @@ Tag : 「双指针」、「滑动窗口」、「二分」、「前缀和」
5151* 如果 $A[ i] $ 本身不为 1 的话,由于定义是必须以 $A[ i] $ 为结尾,因此必须要选择翻转该位置,$f[ i] [ j ] = f[ i - 1] [ j - 1 ] + 1$。
5252
5353代码:
54- ``` Java []
54+ ``` Java
5555class Solution {
5656 public int longestOnes (int [] nums , int k ) {
5757 int n = nums. length;
@@ -75,7 +75,7 @@ class Solution {
7575* 时间复杂度:$O(nk)$
7676* 空间复杂度:$O(k)$
7777
78- ***
78+ ---
7979
8080### 前缀和 + 二分
8181
@@ -134,19 +134,18 @@ class Solution {
134134
135135** 当目标值不存在,「二分」找到的应该是数组内比目标值小或比目标值大的最接近的数。因此二分结束后先进行 ` check ` 再使用是一个好习惯。**
136136
137- ***
137+ ---
138138
139139### 双指针
140140
141141由于我们总是比较 ` len ` 、` tot ` 和 ` k ` 三者的关系。
142142
143143因此我们可以使用「滑动窗口」的思路,动态维护一个左右区间 ` [j, i] ` 和维护窗口内和 ` tot ` 。
144144
145- 右端点一直右移,左端点在窗口不满足「` len - tol <= k ` 」的时候进行右移。
146- 147- 即可做到线程扫描的复杂度:
145+ 右端点一直右移,左端点在窗口不满足「` len - tol <= k ` 」的时候进行右移,即可做到线程扫描的复杂度。
148146
149- ``` Java []
147+ 代码:
148+ ``` Java
150149class Solution {
151150 public int longestOnes (int [] nums , int k ) {
152151 int n = nums. length;
@@ -163,20 +162,19 @@ class Solution {
163162* 时间复杂度:$O(n)$
164163* 空间复杂度:$O(1)$
165164
166- ***
165+ ---
167166
168167### 总结
169168
170169** 除了掌握本题解法以外,我还希望你能理解这几种解法是如何被想到的(特别是如何从「动态规划」想到「二分」)。**
171170
172171** 根据数据范围(复杂度)调整自己所使用的算法的分析能力,比解决该题本身更加重要。**
173172
174- 175173---
176174
177175### 最后
178176
179- 这是我们「刷穿 LeetCode」系列文章的第 ` No.1004 ` 篇,系列开始于 2021年01月01日,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题,我们将先将所有不带锁的题目刷完 。
177+ 这是我们「刷穿 LeetCode」系列文章的第 ` No.1004 ` 篇,系列开始于 2021年01月01日,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题,我们将先把所有不带锁的题目刷完 。
180178
181179在这个系列文章里面,除了讲解解题思路以外,还会尽可能给出最为简洁的代码。如果涉及通解还会相应的代码模板。
182180
0 commit comments