首页 > 编程语言 >代码随想训练营第三十五天打卡(Python)| 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

代码随想训练营第三十五天打卡(Python)| 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

时间:2023-11-14 13:11:05浏览次数:37  
标签:return people int List 找零 柠檬水 five 打卡 points

860.柠檬水找零

class Solution:
    def lemonadeChange(self, bills: List[int]) -> bool:
        five, ten, twenty = 0, 0, 0
        for bill in bills:
            if bill == 5:
                five += 1

            elif bill == 10:
                if five <= 0:
                    return False
                five -= 1
                ten += 1

            elif bill == 20:
                if ten > 0 and five > 0:
                    ten -= 1
                    five -= 1
                    twenty += 1
                elif five >= 3:
                    five -= 3
                    twenty += 1
                else:
                    return False
        return True

406.根据身高重建队列

class Solution:
    def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:
        # 先按身高降序排,升高相同再按 k 的升序排
        people.sort(key=lambda x:(-x[0], x[1]))

        que = []
        # 再按 k 插入到 people 数组
        for i in people:
            que.insert(i[1], i)

        return que

452. 用最少数量的箭引爆气球

class Solution:
    def findMinArrowShots(self, points: List[List[int]]) -> int:
        points.sort(key=lambda x: (x[0], x[1]))
        count = 1
        for i in range(1, len(points)):
            # 不在区间内或者弓箭位置不在区间内
            if points[i][0] > points[i-1][1]:
                count += 1
            else: 
                # 更新右边界              
                points[i][1] = min(points[i-1][1], points[i][1])
        return count

标签:return,people,int,List,找零,柠檬水,five,打卡,points
From: https://www.cnblogs.com/yixff/p/17829733.html

相关文章

  • 20231113打卡
    今天上午电工基础实训,掌握基本的用电常识,提高我的用电安全意识,锻炼我的实操能力。下午java分级测试,我花了大量时间在后端构建上,前端分配的时间相对少了很多,主要是自己的技能水平不够熟练,勉强B级qwq......
  • 11月13每日打卡
    实验13:享元模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解享元模式的动机,掌握该模式的结构;2、能够利用享元模式解决实际问题。 [实验任务一]:围棋设计一个围棋软件,在系统中只存在一个白棋对象和一个黑棋对象,但是它们可以在棋盘的不同位置显示多次。实......
  • 11月12每日打卡
    实验二  面向对象程序设计一、实验目的 1.理解类的定义、继承等面向对象的的基本概念;2.掌握C#语言定义类及其各种成员(字段,属性,方法)的方法;3.掌握方法覆盖的应用;4.掌握接口的定义和实现方法。二、实验要求   根据要求,编写C#程序,并将程序代码和运行结果写入实验报......
  • 11.12打卡
    1.简化路径(70)返回的 规范路径 必须遵循下述格式:始终以斜杠 '/' 开头。两个目录名之间必须只有一个斜杠 '/' 。最后一个目录名(如果存在)不能 以 '/' 结尾。此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含 '.' 或 '..')。返回简化后得到的 规范路......
  • 20231111打卡
    早上,我利用课间的时间开始了新一轮的学习。我进行了一些算法方面的练习题,巩固了之前所学习的内容,同时对新内容进行了深入的研究。通过反复练习,我感到自己在算法方面的能力已经有了很大的提升。中午,我和几个同学相约去外面恰汉堡王,享用了美食,放松了一下身心。在充满紧张的学习生活......
  • 20231110打卡
    早上,我按照计划开始了新一轮的学习。我花了一些时间复习之前学过的算法知识,并解决了一些算法练习题。通过不断思考和练习,我巩固了自己对算法的理解,并且提升了解决问题的能力。下午,由于天气很冷,我和一些同学相约去打球放松一下。尽管天气寒冷,但是打球的过程中我们感到温暖和快乐。......
  • 11.10打卡
    1.加1(66)给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字classSolution{publicint[]plusOne(int[]digits){for(inti=digits.length-1;i>=0;i--){d......
  • 20231109打卡
    早上,我准时开始了新一轮的学习。首先,我学习了算法与数据结构中的迪杰斯特拉算法和弗洛伊德算法。迪杰斯特拉算法是一种用来解决最短路径问题的算法,而弗洛伊德算法则可以求解任意两点之间的最短路径。通过课堂讲解和实例演示,我逐渐理解了它们的原理和应用。我通过编写代码实践了这......
  • 11.9打卡
    1. 不同路径(61)一个机器人位于一个 mxn 网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。classSolution{publicintuniquePaths(intm,intn){int[][]d......
  • 11月8每日打卡
    实验1熟悉常用的Linux操作和Hadoop操作1.实验目的Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺利开展后续其他实验奠定基础。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);(2)Hadoop版本:3.1.3。3.......