每日leetcode第0073天 1652. Defuse the Bomb

今天是911袭击事件20周年,让我们一起来反对恐怖主义,拆炸弹!

这是一道模拟算法的题目,只需要按照题目要求来操作即可。

先是读取数据,然后建立一个新的vector来存储new_code。

求每一个数据的时候,我们要考虑k的情况。

如果k大于0,那么我们就循环k次,让j从1到k,把后面每一项相加,但是这是循环的,我们需要想到通过模运算去跑到最前面,避免越界。

如果k小于0,那么我们就循环k的绝对值次,这里用了abs函数,所以有加cmath头文件。还有一个细节就是相减后越界也会存在,但mod运算应该是不会有负的不用考虑太多的。

我这里就是考虑多了,所以代码里面多先加了一个len,其实不需要。

如果k等于0,那么就不需要加什么东西,直接存0就可以了。

 

这道题如果k比较大,其实我们应该计算周期,把一圈的和计算出来,然后模周期来减少计算次数的。

但好在题目说k范围比n的小,我就懒得把题目再复杂化了。

 

希望这个世界正义可以战胜邪恶,让那些恐怖和赞助恐怖的集权国家领导全部消失。



关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。