提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- [一、力扣860. 柠檬水找零](#一、力扣860. 柠檬水找零)
- [二、力扣406. 根据身高重建队列](#二、力扣406. 根据身高重建队列)
- [三、力扣452. 用最少数量的箭引爆气球](#三、力扣452. 用最少数量的箭引爆气球)
前言
一、力扣860. 柠檬水找零
java
class Solution {
public boolean lemonadeChange(int[] bills) {
int five = 0, ten = 0, twenty = 0;
for(int i = 0; i < bills.length; i ++){
switch(bills[i]){
case 5 : {
five ++; break;
}
case 10 : {
if(five > 0){
ten ++;
five --; break;
}
return false;
}
case 20 : {
twenty ++;
if(ten > 0 && five > 0){
ten --; five --;break;
}
if(five >= 3){
five -= 3; break;
}
return false;
}
}
}
return true;
}
}
二、力扣406. 根据身高重建队列
java
class Solution {
public int[][] reconstructQueue(int[][] people) {
// 身高从大到小排(身高相同k小的站前面)
Arrays.sort(people, (a, b) -> {
if (a[0] == b[0]) return a[1] - b[1]; // a - b 是升序排列,故在a[0] == b[0]的狀況下,會根據k值升序排列
return b[0] - a[0]; //b - a 是降序排列,在a[0] != b[0],的狀況會根據h值降序排列
});
LinkedList<int[]> res = new LinkedList<>();
for(int[] a : people){
res.add(a[1], a);
}
return res.toArray(new int[people.length][]);
}
}
三、力扣452. 用最少数量的箭引爆气球
java
class Solution {
public int findMinArrowShots(int[][] points) {
if(points.length == 1)return 1;
Arrays.sort(points, (a, b) -> Integer.compare(a[0], b[0]));
int count = 1, left = points[0][0], right = points[0][1];
for(int i = 1; i <points.length; i ++){
if(points[i][0] <= right){
left = points[i][0];
right = Math.min(right, points[i][1]);
}else{
count ++;
left = points[i][0];
right = points[i][1];
}
}
return count;
}
}