边界上的蚂蚁
边界上有一只蚂蚁,它有时向 左 走,有时向 右 走。
给你一个 非零 整数数组 nums
。蚂蚁会按顺序读取 nums
中的元素,从第一个元素开始直到结束。每一步,蚂蚁会根据当前元素的值移动:
- 如果
nums[i] < 0
,向 左 移动-nums[i]
单位。 - 如果
nums[i] > 0
,向 右 移动nums[i]
单位。
返回蚂蚁 返回 到边界上的次数。
注意:
- 边界两侧有无限的空间。
- 只有在蚂蚁移动了
|nums[i]|
单位后才检查它是否位于边界上。换句话说,如果蚂蚁只是在移动过程中穿过了边界,则不会计算在内。
思路:本题所问的问题根本在于蚂蚁移动时,在0这个在真正停下几次
c++代码:
class Solution {
public:
int returnToBoundaryCount(vector<int>& nums) {
int sum=0,cnt=0;
for(auto s:nums){
sum+=s;
if(sum==0) cnt++;
}
return cnt;
}
};
java代码:
class Solution {
public int returnToBoundaryCount(int[] nums) {
int sum=0,cnt=0;
for(int s:nums){
sum+=s;
if(sum==0) cnt++;
}
return cnt;
}
}
原文地址:https://blog.csdn.net/weixin_73670733/article/details/136029513
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!