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 73d7e3f

Browse files
Merge pull request youngyangyang04#1621 from zhicheng-lee/zhicheng-lee-patch-5
更新 0452.用最少数量的箭引爆气球.md Java代码
2 parents 1113c71 + 1e65b01 commit 73d7e3f

File tree

1 file changed

+12
-20
lines changed

1 file changed

+12
-20
lines changed

‎problems/0452.用最少数量的箭引爆气球.md

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -137,29 +137,21 @@ public:
137137
### Java
138138
```java
139139
/**
140-
时间复杂度 : O(NlogN) 排序需要 O(NlogN) 的复杂度
141-
142-
空间复杂度 : O(logN) java所使用的内置函数用的是快速排序需要 logN 的空间
143-
*/
140+
* 时间复杂度 : O(NlogN) 排序需要 O(NlogN) 的复杂度
141+
* 空间复杂度 : O(logN) java所使用的内置函数用的是快速排序需要 logN 的空间
142+
*/
144143
class Solution {
145144
public int findMinArrowShots(int[][] points) {
146-
if (points.length == 0) return 0;
147-
//用x[0] - y[0] 会大于2147483647 造成整型溢出
148-
Arrays.sort(points, (x, y) -> Integer.compare(x[0], y[0]));
149-
//count = 1 因为最少需要一个箭来射击第一个气球
150-
int count = 1;
151-
//重叠气球的最小右边界
152-
int leftmostRightBound = points[0][1];
145+
// 根据气球直径的开始坐标从小到大排序
146+
// 使用Integer内置比较方法,不会溢出
147+
Arrays.sort(points, (a, b) -> Integer.compare(a[0], b[0]));
148+
149+
int count = 1; // points 不为空至少需要一支箭
153150
for (int i = 1; i < points.length; i++) {
154-
//如果下一个气球的左边界大于最小右边界
155-
for(int i = 1; i < points.length; i++){
156-
if (points[i][0] > leftmostRightBound ) {
157-
//增加一次射击
158-
count++;
159-
leftmostRightBound = points[i][1];
160-
//不然就更新最小右边界
161-
} else {
162-
leftmostRightBound = Math.min(leftmostRightBound , points[i][1]);
151+
if (points[i][0] > points[i - 1][1]) { // 气球i和气球i-1不挨着,注意这里不是>=
152+
count++; // 需要一支箭
153+
} else { // 气球i和气球i-1挨着
154+
points[i][1] = Math.min(points[i][1], points[i - 1][1]); // 更新重叠气球最小右边界
163155
}
164156
}
165157
return count;

0 commit comments

Comments
(0)

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