[LeetCode] Ant on the Boundary

3028. Ant on the Boundary

An ant is on a boundary. It sometimes goes left and sometimes right.

You are given an array of non-zero integers nums. The ant starts reading nums from the first element of it to its end. At each step, it moves according to the value of the current element:

  • If nums[i] < 0, it moves left by -nums[i] units.
  • If nums[i] > 0, it moves right by nums[i] units.

Return the number of times the ant returns to the boundary.

Notes:

  • There is an infinite space on both sides of the boundary.
  • We check whether the ant is on the boundary only after it has moved |nums[i]| units. In other words, if the ant crosses the boundary during its movement, it does not count.
1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
int returnToBoundaryCount(vector<int>& nums) {
int res = 0, now = 0;
for(auto& n : nums) {
now += n;
if(now == 0) res += 1;
}
return res;
}
};
Author: Song Hayoung
Link: https://songhayoung.github.io/2024/02/04/PS/LeetCode/ant-on-the-boundary/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.