代码随想录二刷day35

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • [一、力扣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;
    }
}
相关推荐
想做小南娘,发现自己是女生喵2 分钟前
第 2 章 顺序表和 vector
java·数据结构·算法
艾醒1 小时前
2026年第29周(7.13-7.19)AI全复盘:技术突破、行业趣闻翻车、算力服务器商业动态
人工智能·算法
CHANG_THE_WORLD1 小时前
6.多线程的TCP通信
java·网络·tcp/ip
雪碧聊技术1 小时前
动态规划算法—01背包问题
算法·动态规划
bu_shuo1 小时前
c与cpp中的argc和argv
c语言·c++·算法
普贤莲花1 小时前
【2026年第29周---写于20260718】---整理,断舍离
程序人生·算法·生活
Reart2 小时前
Leetcode 674.最长连续递增序列 (719)
后端·算法
sun03222 小时前
【笔记】Spring MVC 相关介绍
java·spring·mvc
Reart2 小时前
Leetcode 300.最长递增子序列(719)
算法
可编程芯片开发2 小时前
VSG虚拟同步发电机simulink建模与仿真
算法