代码随想录二刷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;
    }
}
相关推荐
二哈赛车手5 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
吃好睡好便好6 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
栗子~~6 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS8296 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
仰泳之鹅6 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
未若君雅裁7 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
AI人工智能+电脑小能手8 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
阿维的博客日记8 小时前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI8 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
x_yeyue9 小时前
三角形数
笔记·算法·数论·组合数学