力扣 1833. 雪糕的最大数量
题目来源:https://leetcode-cn.com/problems/maximum-ice-cream-bars/
大致题意:给定一个雪糕的价格(0~10^5)数组,再给定一个金额,问最多能买几只雪糕。
思路:排序加贪心。先快排,然后从低到高,能买就买,直到钱不够了。简单直接,但是耗时大,复杂度O(n logn)。
优化:因为雪糕价格最大为10^5,可用空间换时间的方法。创建一个大小为100001的雪糕数组,下标对应元素值就是该下标对应雪糕的个数。然后从头开始遍历雪糕数组,能买几个买几个,和之前一样。
public int maxIceCream(int[] costs, int coins) {int num = 0;// 方法一,排序加贪心// Arrays.sort(costs); // 排序// int sum = 0;// for (int i : costs) { // 贪心// if ((sum+i) <= coins) {// num++;// sum += i;// }// else// break;// }// 方法二:空间换时间int[] freq = new int[100001];for (int i : costs) { // 初始化雪糕数组freq[i]++;}int sum = 0;for (int i = 1; i < 100001 ; i++) { // 贪心if ((sum + i) <= coins) {while (freq[i]-- != 0) {if ((sum + i) <= coins) {sum += i;num++;}elsebreak;}}elsebreak;}return num;}
可能最大的收获,就是明白了java对数组排序的方法:
- Arrays.sort(array)
力扣 1833. 雪糕的最大数量相关推荐
- 【Leetcode】1833. 雪糕的最大数量
Leetcode: 1833. 雪糕的最大数量 题目描述: 解题思路 题目描述: 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑.商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定 ...
- Leetcode 1833 雪糕的最大数量
1833. 雪糕的最大数量 难度中等81收藏分享切换为英文接收动态反馈 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 ...
- LeetCode 每日一题 1833. 雪糕的最大数量
1833. 雪糕的最大数量 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金 ...
- 1833 雪糕的最大数量(排序)
1. 问题描述: 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑.商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格.Ton ...
- 力扣-求关注者的数量
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题. 文章目录 前言 一.题目:1729. 求关注者的数量 二.解题 1.正确示范① 提交SQL 运行结果 2.正确示范② 提交SQL ...
- python3__leecode/1833.雪糕的最大数量
1833. maximum ice cream bars 雪糕的最大数量 一.刷题内容 原题链接 内容描述 二.解题方法(贪心算法) 1.方法一:enumerate 2.方法二:while 一.刷题内 ...
- leetcode 1833. 雪糕的最大数量
夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格.Tony 一共有 co ...
- LeetCode 1833. 雪糕的最大数量(贪心)
文章目录 1. 题目 2. 解题 1. 题目 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 ...
- 1833. 雪糕的最大数量
夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格.Tony 一共有 co ...
最新文章
- Python基本语法_基本数据类型_数值型详解
- 雷卷 java,阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性...
- [YTU]_2781( 重复字符串)
- std::string::assign 崩溃的问题
- 韵达开放接口php代码,韵达快递订单运输状态查询接口
- BZOJ3674: 可持久化并查集加强版
- 算法突击训练营:开学第1课 听课总结
- git提交代码的两种方法步骤
- 酷我音乐盒官方免费版最新版
- 量子科技商业化寻路,资本造势但技术落地成难|科股宝
- c语言编程题蓄水池,C语言中蓄水池抽样
- cas4.0实现多种方式邮箱/手机号码登录及认证
- 用树莓派控制两盏灯(二)
- Three.js-光线投射(raycaster)
- Uncaught SyntaxError: Not available in legacy mode
- R型单相隔离变压器如何选择?
- 小程序开发:小程序的底部弹窗(半屏弹窗)
- c语言十六转十进制,C语言 · 十六进制转十进制
- 区块链在工业互联网的应用前景
- 系统上线前的“培训”工作
热门文章
- 有容乃大:楚庄王(第二篇
- 输入整数n,其中0<n<7,输出用n、n+1、n+2、n+3这4个数字组成的无重复数字的3位数
- 有一分数序列,2/1, 3/2, 5/3, 8/5, 13/8, 21/13,……,请编程求出这个数列的前20项之和。
- Excel里关于if的9个函数,如何指定条件求和、计数、平均等
- Français littérature
- 外企面试,哪有你想象的那么难!(已收埃森哲、NTTDATA等8家外企offer)
- Linux命令-df命令
- Python爬取高颜值美女(爬虫+人脸检测+颜值检测)
- android11最新版本是多少,Android11正式发布 安卓11正式版系统发布更新时间
- java古诗_古诗自动生成程序JAVA