代码随想录二刷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;
    }
}
相关推荐
开开心心就好11 分钟前
本地文件搜索工具,双击Ctrl就能呼出搜索
java·服务器·前端·支持向量机·ffmpeg·音视频·模拟退火算法
独隅16 分钟前
Claude 高效使用指南深度评测
java·开发语言·claude·claude code
小豆庄21 分钟前
视频脱敏引擎的追踪难题:转场误判定、ID撞号和淡入窗口
qt·算法·目标检测·音视频·视频·敏捷流程
ByteCoder.23 分钟前
班前十分钟的清单,按体检引导单来写
java·服务器·前端·助播虾
海的透彻25 分钟前
如何让docker容器启动时用自定义的用户
java·docker·dubbo
海清河晏11128 分钟前
加油站问题
数据结构·算法·leetcode
疯狂学习GIS29 分钟前
将谷歌地球引擎账号升级为Contributor与Partner层级的方法
java·数据库·人工智能
GG.WinGel41 分钟前
质数数目(蓝桥杯练习题)
java·数据结构·算法·青少年编程·蓝桥杯
泡泡糖的中文规格书1 小时前
HDLbits 2.2 学习笔记 · 多路复用器
java·开发语言
艾iYYY1 小时前
进程的状态
算法