当前位置: 首页 > news >正文

leetcode贪心(1833. 雪糕的最大数量)

前言

经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现开始专项练习。

描述

夏日炎炎,小男孩 Tony 想买一些雪糕消消暑。

商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格。Tony 一共有 coins 现金可以用于消费,他想要买尽可能多的雪糕。

注意:Tony 可以按任意顺序购买雪糕。

给你价格数组 costs 和现金量 coins ,请你计算并返回 Tony 用 coins 现金能够买到的雪糕的 最大数量 。

你必须使用计数排序解决此问题。

示例 1:

输入:costs = [1,3,2,4,1], coins = 7
输出:4
解释:Tony 可以买下标为 0、1、2、4 的雪糕,总价为 1 + 3 + 2 + 1 = 7

示例 2:

输入:costs = [10,6,8,7,7,8], coins = 5
输出:0
解释:Tony 没有足够的钱买任何一支雪糕。

示例 3:

输入:costs = [1,6,3,1,2,5], coins = 20
输出:6
解释:Tony 可以买下所有的雪糕,总价为 1 + 6 + 3 + 1 + 2 + 5 = 18 。

提示:

  • costs.length == n
  • 1 <= n <= 105
  • 1 <= costs[i] <= 105
  • 1 <= coins <= 108

实现原理与步骤

1.通过题干分析每次只需选择costs最小的雪糕即可。全局的最优解包含每次选择costs最小的局部最优解,使用贪心算法比较合适。

2.不适合贪心算法的案例,比如0/1背包问题,全局最优需要考虑背包剩余容量来选择。局部的单位重量最大价格无法作为最优子结构算法。Java数据结构与算法(0/1背包问题优化)-CSDN博客

代码实现

class Solution {public int maxIceCream(int[] costs, int coins) {Arrays.sort(costs);int res=0;for(int i=0;i<costs.length;i++){if(coins>=costs[i]){coins-=costs[i];res++;}}return res;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • elementplus菜单组件的那些事
  • C语言 之 理解指针(4)
  • idea常用免费插件(持续更新欢迎补充)
  • AI作图接口要怎么调用呢?
  • 论文阅读-《Distant Supervision for Relation Extraction beyond the Sentence Boundary》
  • python+vue3+onlyoffice在线文档系统实战20240725笔记,首页开发
  • Linux第四章课后作业(ssh)
  • 又一新AI搜索工具,OpenAI 推出新的搜索方式 SearchGPT
  • 实战:Zookeeper 简介和单点部署ZooKeeper
  • 计算机的错误计算(四十六)
  • 构建实时Java数据处理系统:技术与实践
  • oracle 19c RAC-OracleLinux8.10安装19c遇到的问题
  • 反射API安全白皮书:深入解析与防御策略
  • 【Vulnhub系列】Vulnhub_Raven2靶场渗透(原创)
  • Sentinel隔离、降级、授权规则详解
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Fabric架构演变之路
  • JavaScript-Array类型
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • nginx 负载服务器优化
  • scala基础语法(二)
  • Service Worker
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 服务器从安装到部署全过程(二)
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 看域名解析域名安全对SEO的影响
  • 浅谈Golang中select的用法
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 入口文件开始,分析Vue源码实现
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 思维导图—你不知道的JavaScript中卷
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 我们雇佣了一只大猴子...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • $$$$GB2312-80区位编码表$$$$
  • (C++20) consteval立即函数
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (十一)图像的罗伯特梯度锐化
  • (四)模仿学习-完成后台管理页面查询
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .net FrameWork简介,数组,枚举
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NetCore部署微服务(二)
  • .NET中统一的存储过程调用方法(收藏)
  • .php文件都打不开,打不开php文件怎么办
  • :=