我是靠谱客的博主 光亮魔镜,最近开发中收集的这篇文章主要介绍leetcode(2)495——提莫攻击(C++),运算符优先级(+=,?,+,-)前言程序疑惑,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 前言
- 程序
- 分解
- 疑惑
前言
程序,边刷边总结边学语言。
题目
程序
int findPoisonedDuration(vector<int> & timeSeries, int duration){
int begin = timeSeries[0], result = 0;
for (int v : timeSeries){
result += begin + duration >= v ? v - begin : duration;
begin = v;
}
return result+duration; // 处理最后一个中毒周期
}
分解
整体思路:
首先,我们记某个提莫设计开始的时刻为begin
如果这个开始的时刻begin+中毒的时间duration大于下次提莫投毒的时间v:
那么中毒时间res就加上从 begin开始到v的时间 (因为提莫的毒不能叠加,从begin开始只能中毒到v,从v开始又是一剂新毒液。。。);
如果这个开始的时刻begin+中毒的时间duration小于下次提莫投毒的时间v:
那么中毒时间res就加上中毒时间duration
疑惑
result += begin + duration >= v ? v - begin : duration
这个结构一开始困惑到我了。
查了查C++中的运算符的优先级:
优先级:+, >=, ?:, +=
所以这里先算 begin + duration ;再判断begin + duration >= v;再运算? v - begin : duration;如果>=号成立,那么result+=v-begin,否则result+=duration。
最后
以上就是光亮魔镜为你收集整理的leetcode(2)495——提莫攻击(C++),运算符优先级(+=,?,+,-)前言程序疑惑的全部内容,希望文章能够帮你解决leetcode(2)495——提莫攻击(C++),运算符优先级(+=,?,+,-)前言程序疑惑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复