Skip to content

Commit 9f289f8

Browse files
committed
一刷768
1 parent ae75a36 commit 9f289f8

23 files changed

+111
-10
lines changed

README.adoc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5401,14 +5401,14 @@ TIP: **公众号的微信号是: `jikerizhi`**。__因为众所周知的原因
54015401
//|{doc_base_url}/0767-reorganize-string.adoc[题解]
54025402
//|Medium
54035403
//|
5404-
//
5405-
//|{counter:codes}
5406-
//|{leetcode_base_url}/max-chunks-to-make-sorted-ii/[768. Max Chunks To Make Sorted II^]
5407-
//|{source_base_url}/_0768_MaxChunksToMakeSortedII.java[Java]
5408-
//|{doc_base_url}/0768-max-chunks-to-make-sorted-ii.adoc[题解]
5409-
//|Hard
5410-
//|
5411-
//
5404+
5405+
|{counter:codes}
5406+
|{leetcode_base_url}/max-chunks-to-make-sorted-ii/[768. Max Chunks To Make Sorted II^]
5407+
|{source_base_url}/_0768_MaxChunksToMakeSortedII.java[Java]
5408+
|{doc_base_url}/0768-max-chunks-to-make-sorted-ii.adoc[题解]
5409+
|Hard
5410+
|
5411+
54125412
//|{counter:codes}
54135413
//|{leetcode_base_url}/max-chunks-to-make-sorted/[769. Max Chunks To Make Sorted^]
54145414
//|{source_base_url}/_0769_MaxChunksToMakeSorted.java[Java]

docs/0000-09-monotonic-stack.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ for (int i = 1; i < nums.length; i++) {
6363
. xref:0654-maximum-binary-tree.adoc[654. Maximum Binary Tree]
6464
. xref:0739-daily-temperatures.adoc[739. Daily Temperatures]
6565
. xref:0901-online-stock-span.adoc[901. Online Stock Span]
66+
. xref:0768-max-chunks-to-make-sorted-ii.adoc[768. Max Chunks To Make Sorted II]
6667

6768

6869
== 参考资料

docs/0000-25-greedy.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ image::images/greedy-01.png[{image_attr}]
2323
. xref:0053-maximum-subarray.adoc[53. Maximum Subarray]
2424
. xref:0134-gas-station.adoc[134. Gas Station]
2525
. xref:0968-binary-tree-cameras.adoc[968. Binary Tree Cameras]
26+
. xref:0768-max-chunks-to-make-sorted-ii.adoc[768. Max Chunks To Make Sorted II]
27+
2628

2729
image::images/greedy-02.png[{image_attr}]
2830

docs/0768-max-chunks-to-make-sorted-ii.adoc

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,68 @@ However, splitting into [2, 1], [3], [4], [4] is the highest number of chunks po
4040
* `arr[i]` will be an integer in range `[0, 10**8]`.
4141
4242
43-
43+
== 思路分析
4444

45+
对于已经分好块的数组,那么右边的块的所有数字均大于或等于左边的块的所有数字。
4546

47+
对于已经分好块的数组,若在其末尾添加一个数字,如何求得新数组的分块方式?
48+
49+
那么,如果新数字大于块中所有数字,则可以自己独立成块;否则,就需要跟前面合并:从新增数字向左,直到排序块的最大值小于新增数字为止,这个区间合并为一个新快。
50+
51+
image::images/0768-01.png[{image_attr}]
52+
53+
image::images/0768-02.png[{image_attr}]
54+
55+
image::images/0768-03.png[{image_attr}]
56+
57+
image::images/0768-04.png[{image_attr}]
58+
59+
image::images/0768-05.png[{image_attr}]
60+
61+
image::images/0768-06.png[{image_attr}]
62+
63+
image::images/0768-07.png[{image_attr}]
64+
65+
image::images/0768-08.png[{image_attr}]
66+
67+
image::images/0768-09.png[{image_attr}]
68+
69+
image::images/0768-10.png[{image_attr}]
70+
71+
image::images/0768-11.png[{image_attr}]
72+
73+
image::images/0768-12.png[{image_attr}]
74+
75+
image::images/0768-13.png[{image_attr}]
76+
77+
image::images/0768-14.png[{image_attr}]
78+
79+
image::images/0768-15.png[{image_attr}]
4680

4781
[[src-0768]]
82+
[tabs]
83+
====
84+
一刷::
85+
+
86+
--
4887
[{java_src_attr}]
4988
----
5089
include::{sourcedir}/_0768_MaxChunksToMakeSortedII.java[tag=answer]
5190
----
91+
--
92+
93+
// 二刷::
94+
// +
95+
// --
96+
// [{java_src_attr}]
97+
// ----
98+
// include::{sourcedir}/_0768_MaxChunksToMakeSortedII_2.java[tag=answer]
99+
// ----
100+
// --
101+
====
102+
103+
== 参考资料
104+
105+
. https://leetcode.cn/problems/max-chunks-to-make-sorted-ii/solutions/1741851/zui-duo-neng-wan-cheng-pai-xu-de-kuai-ii-w5c6/?envType=study-plan-v2&envId=selected-coding-interview[768. 最多能完成排序的块 II - 官方题解^]
106+
. https://leetcode.cn/problems/max-chunks-to-make-sorted-ii/solutions/22785/zui-duo-neng-wan-cheng-pai-xu-de-kuai-ii-deng-jie-/?envType=study-plan-v2&envId=selected-coding-interview[768. 最多能完成排序的块 II - 辅助栈法,清晰图解^] -- 图解很好!但是,解题思路还是得参考官方题解。
52107

docs/images/0768-01.png

8.36 KB
Loading

docs/images/0768-02.png

9.55 KB
Loading

docs/images/0768-03.png

9.83 KB
Loading

docs/images/0768-04.png

10.6 KB
Loading

docs/images/0768-05.png

17.6 KB
Loading

docs/images/0768-06.png

17.7 KB
Loading

docs/images/0768-07.png

11.5 KB
Loading

docs/images/0768-08.png

11.8 KB
Loading

docs/images/0768-09.png

24.8 KB
Loading

docs/images/0768-10.png

30.5 KB
Loading

docs/images/0768-11.png

25 KB
Loading

docs/images/0768-12.png

12 KB
Loading

docs/images/0768-13.png

17 KB
Loading

docs/images/0768-14.png

11.3 KB
Loading

docs/images/0768-15.png

13.5 KB
Loading

docs/index.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1610,7 +1610,7 @@ include::0752-open-the-lock.adoc[leveloffset=+1]
16101610

16111611
// include::0767-reorganize-string.adoc[leveloffset=+1]
16121612

1613-
// include::0768-max-chunks-to-make-sorted-ii.adoc[leveloffset=+1]
1613+
include::0768-max-chunks-to-make-sorted-ii.adoc[leveloffset=+1]
16141614

16151615
// include::0769-max-chunks-to-make-sorted.adoc[leveloffset=+1]
16161616

logbook/202406.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,6 +823,11 @@
823823
|{doc_base_url}/0509-fibonacci-number.adoc[题解]
824824
|✅ 动态规划
825825

826+
|{counter:codes}
827+
|{leetcode_base_url}/max-chunks-to-make-sorted-ii/[768. Max Chunks To Make Sorted II^]
828+
|{doc_base_url}/0768-max-chunks-to-make-sorted-ii.adoc[题解]
829+
|❌ 贪心+单调栈。单调栈的解法思路很精巧!
830+
826831
|===
827832

828833
截止目前,本轮练习一共完成 {codes} 道题。
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.diguage.algo.leetcode;
2+
3+
import java.util.ArrayDeque;
4+
import java.util.Deque;
5+
6+
public class _0768_MaxChunksToMakeSortedII {
7+
// tag::answer[]
8+
9+
/**
10+
* @author D瓜哥 · https://www.diguage.com
11+
* @since 2024-09-21 17:48:21
12+
*/
13+
public int maxChunksToSorted(int[] arr) {
14+
Deque<Integer> stack = new ArrayDeque<>();
15+
for (int num : arr) {
16+
if (!stack.isEmpty() && num < stack.peek()) {
17+
int head = stack.pop();
18+
while (!stack.isEmpty() && num < stack.peek()) {
19+
stack.pop();
20+
}
21+
stack.push(head);
22+
} else {
23+
stack.push(num);
24+
}
25+
}
26+
return stack.size();
27+
}
28+
// end::answer[]
29+
}

tools/7-download-images.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
a = [];
2+
document.querySelectorAll('div.w-full > div.break-words > div > div > div > div > img').forEach(e => a.push(e.src));
3+
console.log("count=0\nfor f in '" + a.join("' '") + "'\ndo\n ((count = count + 1))\n cnt=$(printf \"%02d\" count)\n wget $f -O \"-$cnt.png\"\ndone");
4+
5+
// 从 LeetCode 下载图片
6+
// https://stackoverflow.com/a/14306442/951836 -- wget 重命名
7+
// https://stackoverflow.com/a/59817835/951836 -- 自增数字
8+
// https://stackoverflow.com/a/18460742/951836 -- 格式化
9+

0 commit comments

Comments
 (0)