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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值