题目来源: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. 雪糕的最大数量相关推荐

  1. 【Leetcode】1833. 雪糕的最大数量

    Leetcode: 1833. 雪糕的最大数量 题目描述: 解题思路 题目描述: 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑.商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定 ...

  2. Leetcode 1833 雪糕的最大数量

    1833. 雪糕的最大数量 难度中等81收藏分享切换为英文接收动态反馈 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 ...

  3. LeetCode 每日一题 1833. 雪糕的最大数量

    1833. 雪糕的最大数量 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金 ...

  4. 1833 雪糕的最大数量(排序)

    1. 问题描述: 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑.商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格.Ton ...

  5. 力扣-求关注者的数量

    大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题. 文章目录 前言 一.题目:1729. 求关注者的数量 二.解题 1.正确示范① 提交SQL 运行结果 2.正确示范② 提交SQL ...

  6. python3__leecode/1833.雪糕的最大数量

    1833. maximum ice cream bars 雪糕的最大数量 一.刷题内容 原题链接 内容描述 二.解题方法(贪心算法) 1.方法一:enumerate 2.方法二:while 一.刷题内 ...

  7. leetcode 1833. 雪糕的最大数量

    夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格.Tony 一共有 co ...

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

    文章目录 1. 题目 2. 解题 1. 题目 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 ...

  9. 1833. 雪糕的最大数量

    夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格.Tony 一共有 co ...

最新文章

  1. Python基本语法_基本数据类型_数值型详解
  2. 雷卷 java,阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性...
  3. [YTU]_2781( 重复字符串)
  4. std::string::assign 崩溃的问题
  5. 韵达开放接口php代码,韵达快递订单运输状态查询接口
  6. BZOJ3674: 可持久化并查集加强版
  7. 算法突击训练营:开学第1课 听课总结
  8. git提交代码的两种方法步骤
  9. 酷我音乐盒官方免费版最新版
  10. 量子科技商业化寻路,资本造势但技术落地成难|科股宝
  11. c语言编程题蓄水池,C语言中蓄水池抽样
  12. cas4.0实现多种方式邮箱/手机号码登录及认证
  13. 用树莓派控制两盏灯(二)
  14. Three.js-光线投射(raycaster)
  15. Uncaught SyntaxError: Not available in legacy mode
  16. R型单相隔离变压器如何选择?
  17. 小程序开发:小程序的底部弹窗(半屏弹窗)
  18. c语言十六转十进制,C语言 · 十六进制转十进制
  19. 区块链在工业互联网的应用前景
  20. 系统上线前的“培训”工作

热门文章

  1. 有容乃大:楚庄王(第二篇
  2. 输入整数n,其中0<n<7,输出用n、n+1、n+2、n+3这4个数字组成的无重复数字的3位数
  3. 有一分数序列,2/1, 3/2, 5/3, 8/5, 13/8, 21/13,……,请编程求出这个数列的前20项之和。
  4. Excel里关于if的9个函数,如何指定条件求和、计数、平均等
  5. Français littérature
  6. 外企面试,哪有你想象的那么难!(已收埃森哲、NTTDATA等8家外企offer)
  7. Linux命令-df命令
  8. Python爬取高颜值美女(爬虫+人脸检测+颜值检测)
  9. android11最新版本是多少,Android11正式发布 安卓11正式版系统发布更新时间
  10. java古诗_古诗自动生成程序JAVA