边界上的蚂蚁

边界上有一只蚂蚁,它有时向 左 走,有时向 右 走。

给你一个 非零 整数数组 nums 。蚂蚁会按顺序读取 nums 中的元素,从第一个元素开始直到结束。每一步,蚂蚁会根据当前元素的值移动:

  • 如果 nums[i] < 0 ,向  移动 -nums[i]单位。
  • 如果 nums[i] > 0 ,向  移动 nums[i]单位。

返回蚂蚁 返回 到边界上的次数。

注意:

  • 边界两侧有无限的空间。
  • 只有在蚂蚁移动了 |nums[i]| 单位后才检查它是否位于边界上。换句话说,如果蚂蚁只是在移动过程中穿过了边界,则不会计算在内。

思路:本题所问的问题根本在于蚂蚁移动时,在0这个在真正停下几次

c++代码:

class Solution {
public:
    int returnToBoundaryCount(vector& 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;
    }
}

你可能感兴趣的:(leetcode,算法,数据结构)