文章目录

  • 1. 题目
  • 2. 解题

1. 题目

你的初始能量为 P,初始分数为 0,只有一包令牌。

令牌的值为 token[i],每个令牌最多只能使用一次,可能的两种使用方法如下:

  • 如果你至少有 token[i] 点能量,可以将令牌置为正面朝上,失去 token[i] 点能量,并得到 1 分。
  • 如果我们至少有 1 分,可以将令牌置为反面朝上,获得 token[i] 点能量,并失去 1 分。

在使用任意数量的令牌后,返回我们可以得到的最大分数

示例 1:
输入:tokens = [100], P = 50
输出:0示例 2:
输入:tokens = [100,200], P = 150
输出:1示例 3:
输入:tokens = [100,200,300,400], P = 200
输出:2提示:
tokens.length <= 1000
0 <= tokens[i] < 10000
0 <= P < 10000

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/bag-of-tokens
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:int bagOfTokensScore(vector<int>& tokens, int P) {int points = 0, maxPoints = 0, n = tokens.size();sort(tokens.begin(), tokens.end());if(n==0 || P < tokens[0])return 0;int l = 0, r = n-1;while(l <= r){if(P >= tokens[l])//能量够,去拿分{points++;P -= tokens[l];//消耗最少的能量l++;}else//能量不够{if(points > 0){points--;//花分去获取大能量P += tokens[r];r--;}elsebreak;}maxPoints = max(points, maxPoints);}return maxPoints;}
};

16 ms 10.4 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 948. 令牌放置(贪心)相关推荐

  1. leetcode学习记录_贪心

    贪心的特点就是不断求得局部最优解 然后用局部最优解求得全局最优解 55. 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度 ...

  2. Leetcode刷题:贪心算法

    文章目录 一.算法思想 二.分配问题 2.1 Leetcode 455 2.1.1 题目描述 2.1.2 输入输出格式 2.1.3求解思路 2.1.4 代码示例(C++) 2.2 Leetcode 1 ...

  3. LeetCode 题解随笔:贪心算法

    目录 零.前言 一.简单问题 455. 分发饼干 1005. K 次取反后最大化的数组和 860. 柠檬水找零 二.序列问题 376. 摆动序列[*] 738. 单调递增的数字 53. 最大子数组和[ ...

  4. leetcode刷题:贪心算法08(加油站)

    134. 加油站 力扣题目链接 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 co ...

  5. 170. Leetcode 135. 分发糖果 (贪心算法-两个维度权衡题目)

    这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右 边,如果两边一起考虑一定会顾此失彼. 先确定右边评分大于左边的情况(也就是从前向后遍历) 此时局部最优:只要右边评分 ...

  6. LeetCode 881. 救生艇(贪心,双指针)

    1. 题目 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.( ...

  7. LeetCode 134. 加油站(贪心)

    文章目录 1. 题目 2. 解题 1. 题目 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要 ...

  8. LeetCode算法解析之“贪心”解决反转矩阵最大得分问题

    有一个二维矩阵 A 其中每个元素的值为 0 或 1 . 移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0. 在做出任意次数的移动后,将该矩阵的每一 ...

  9. LeetCode Text Justification(贪心)

    题意:给出一个字符串单词数组words及每行的最大字符个数maxLen,将字符数组排版,使得每行字符不超过maxLen,单词与单词之间有空格,并且单词与单词之间的空格尽量均匀,如果不能满足均匀,那么左 ...

最新文章

  1. HTML中常见的各种位置距离以及dom中的坐标讨论
  2. 由浅入深CIL系列:6.For和Foreach的CIL结构组成以及运行效率
  3. spark官方文档_Apache Spark 文档传送门
  4. windows cmd 窗口 显示信息慢_你玩过Windows 10新版CMD了吗?
  5. 编写Dockerfile增强centos镜像:安装vim 和net-tools
  6. android 模仿instagram的listview,实现Instagram的Material Design概念设计
  7. list(map(list,zip(*a)))
  8. 21.Azure备份Azure上的虚拟机(下)
  9. 关于WannaCry勒索病毒 你需要知道的8个问题
  10. mysql 插入中文 ERROR 1366 (HY000): Incorrect string value: '\xE7\x8E\x9E\x97' for column
  11. c if语句多个条件判断顺序_Java中的流程控制语句 (基础篇四)
  12. SqlServer过滤字段中的中文
  13. Ubuntu18.04之man中文版
  14. magento2 发邮件
  15. How Google Tests Software.pdf
  16. 3808. 画正方形——AcWing题库
  17. 收款收据设计html,统一收款收据打印软件怎么制作收据 制作打印的方法
  18. JS 增加或减少时间(根据天、小时、分钟、秒)
  19. 网站服务器带宽多少合适,服务器选择时带宽选多少合适?
  20. spring Clound EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEW

热门文章

  1. 【python】urllib和urllib3,requests 简要概括---笔记
  2. 玩Python遇到的问题一二三及解决办法
  3. C#串口SerialPort常用属性方法
  4. php5.3+for+linux,Centos 安装 nginx + php5.3
  5. java 线程间通信 handler_Handler不同线程间的通信
  6. python-day3
  7. 大数据开发你需要知道的十个技术
  8. /etc/fstab 参数详解及如何设置开机自动挂载
  9. 【BZOJ3640】JC的小苹果 概率DP+高斯消元
  10. python3.5文档