代码随想录二刷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 小时前
zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线
算法
技术专家3 小时前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
dllxhcjla4 小时前
微服务全套
java
csdn_aspnet4 小时前
C# (QuickSort using Random Pivoting)使用随机枢轴的快速排序
数据结构·算法·c#·排序算法
亚历克斯神4 小时前
JVM 内存管理 2026:深度解析与调优实战
java·spring·微服务
鹿角片ljp4 小时前
最长回文子串(LeetCode 5)详解
算法·leetcode·职场和发展
逻辑驱动的ken5 小时前
Java高频面试题:03
java·开发语言·面试·求职招聘·春招
广师大-Wzx5 小时前
一篇文章看懂MySQL数据库(下)
java·开发语言·数据结构·数据库·windows·python·mysql
野生技术架构师5 小时前
Java NIO到底是个什么东西?
java·开发语言·nio
paeamecium6 小时前
【PAT甲级真题】- Cars on Campus (30)
数据结构·c++·算法·pat考试·pat