代码随想录二刷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;
    }
}
相关推荐
h_a_o777oah5 分钟前
【算法专项】扩展域并查集:原理详解及解决大部分种类并查集问题(洛谷P5937 P2024 C++代码)
数据结构·c++·算法·acm·并查集·扩展域·逻辑建模
摇滚侠13 分钟前
SpringMVC 入门到实战 配置类替换 XML 配置文件 86-91
xml·java·后端·spring·maven·intellij-idea
栗子~~15 分钟前
金融场景下BigDecimal 运算规范 + 常用场景使用 + 数据库字段设计详解
java·数据库·金融
我登哥MVP19 分钟前
SpringCloud Alibaba 核心组件解析:服务注册与发现(Nacos)
java·spring boot·后端·spring·spring cloud·java-ee·maven
兰令水24 分钟前
leecodecode【单调栈】【2026.6.12打卡-java版本】
java·开发语言·算法
云烟成雨TD30 分钟前
Agent Scope Java 2.x 系列【8】工具调用
java·人工智能·agent
TMT星球33 分钟前
魔法原子上交会首秀VLA K02大模型,完成具身智能从“执行”到“理解”的能力跃迁
人工智能·算法·机器学习
2301_7644413335 分钟前
番茄钟+AI:高效专注的秘密武器
人工智能·算法·数学建模·动态规划·交互
AI人工智能+电脑小能手37 分钟前
【大白话说Java面试题 第112题】【并发篇】第12题:AQS 中节点的入队时机有哪些?
java·开发语言·面试
摇滚侠38 分钟前
SpringMVC 入门到实战 处理静态资源的过程 64
java·后端·spring·maven·intellij-idea