LeetCode 948. 令牌放置(贪心)
文章目录
- 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. 令牌放置(贪心)相关推荐
- leetcode学习记录_贪心
贪心的特点就是不断求得局部最优解 然后用局部最优解求得全局最优解 55. 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度 ...
- Leetcode刷题:贪心算法
文章目录 一.算法思想 二.分配问题 2.1 Leetcode 455 2.1.1 题目描述 2.1.2 输入输出格式 2.1.3求解思路 2.1.4 代码示例(C++) 2.2 Leetcode 1 ...
- LeetCode 题解随笔:贪心算法
目录 零.前言 一.简单问题 455. 分发饼干 1005. K 次取反后最大化的数组和 860. 柠檬水找零 二.序列问题 376. 摆动序列[*] 738. 单调递增的数字 53. 最大子数组和[ ...
- leetcode刷题:贪心算法08(加油站)
134. 加油站 力扣题目链接 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 co ...
- 170. Leetcode 135. 分发糖果 (贪心算法-两个维度权衡题目)
这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右 边,如果两边一起考虑一定会顾此失彼. 先确定右边评分大于左边的情况(也就是从前向后遍历) 此时局部最优:只要右边评分 ...
- LeetCode 881. 救生艇(贪心,双指针)
1. 题目 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.( ...
- LeetCode 134. 加油站(贪心)
文章目录 1. 题目 2. 解题 1. 题目 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要 ...
- LeetCode算法解析之“贪心”解决反转矩阵最大得分问题
有一个二维矩阵 A 其中每个元素的值为 0 或 1 . 移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0. 在做出任意次数的移动后,将该矩阵的每一 ...
- LeetCode Text Justification(贪心)
题意:给出一个字符串单词数组words及每行的最大字符个数maxLen,将字符数组排版,使得每行字符不超过maxLen,单词与单词之间有空格,并且单词与单词之间的空格尽量均匀,如果不能满足均匀,那么左 ...
最新文章
- HTML中常见的各种位置距离以及dom中的坐标讨论
- 由浅入深CIL系列:6.For和Foreach的CIL结构组成以及运行效率
- spark官方文档_Apache Spark 文档传送门
- windows cmd 窗口 显示信息慢_你玩过Windows 10新版CMD了吗?
- 编写Dockerfile增强centos镜像:安装vim 和net-tools
- android 模仿instagram的listview,实现Instagram的Material Design概念设计
- list(map(list,zip(*a)))
- 21.Azure备份Azure上的虚拟机(下)
- 关于WannaCry勒索病毒 你需要知道的8个问题
- mysql 插入中文 ERROR 1366 (HY000): Incorrect string value: '\xE7\x8E\x9E\x97' for column
- c if语句多个条件判断顺序_Java中的流程控制语句 (基础篇四)
- SqlServer过滤字段中的中文
- Ubuntu18.04之man中文版
- magento2 发邮件
- How Google Tests Software.pdf
- 3808. 画正方形——AcWing题库
- 收款收据设计html,统一收款收据打印软件怎么制作收据 制作打印的方法
- JS 增加或减少时间(根据天、小时、分钟、秒)
- 网站服务器带宽多少合适,服务器选择时带宽选多少合适?
- spring Clound EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEW
热门文章
- 【python】urllib和urllib3,requests 简要概括---笔记
- 玩Python遇到的问题一二三及解决办法
- C#串口SerialPort常用属性方法
- php5.3+for+linux,Centos 安装 nginx + php5.3
- java 线程间通信 handler_Handler不同线程间的通信
- python-day3
- 大数据开发你需要知道的十个技术
- /etc/fstab 参数详解及如何设置开机自动挂载
- 【BZOJ3640】JC的小苹果 概率DP+高斯消元
- python3.5文档