【教3妹学编程-算法题】3028. 边界上的蚂蚁

【教3妹学编程-算法题】3028. 边界上的蚂蚁_第1张图片

3妹:2哥,今天春节回的去吗?最火春运遭遇最强暴雪:冻雨像刨冰
2哥 : 听说湖北的高速、高铁都已经停了。
3妹:是啊,如果是雪还好办,可以除雪,冻雨就比较难办了。
2哥 :哎,好多人都滞留的高铁站了,没法回家了
3妹:也有好多人滞留在高速上面,急的像热锅上的蚂蚁,惨。
2哥:3妹,要不别回去了吧,我们就地过年
3妹:切,这里更冷,每天抖啊抖,跳啊跳才能缓解寒冷,我们家那儿可是有暖气的。
2哥:好吧,回家也也要记得每天刷题啊,热锅上的蚂蚁没有,今天有一道“边界上的蚂蚁”, 让我们先做一下吧~

【教3妹学编程-算法题】3028. 边界上的蚂蚁_第2张图片

题目:

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

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

如果 nums[i] < 0 ,向 左 移动 -nums[i]单位。
如果 nums[i] > 0 ,向 右 移动 nums[i]单位。
返回蚂蚁 返回 到边界上的次数。

注意:

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

示例 1:

输入:nums = [2,3,-5]
输出:1
解释:第 1 步后,蚂蚁距边界右侧 2 单位远。
第 2 步后,蚂蚁距边界右侧 5 单位远。
第 3 步后,蚂蚁位于边界上。
所以答案是 1 。
示例 2:

输入:nums = [3,2,-3,-4]
输出:0
解释:第 1 步后,蚂蚁距边界右侧 3 单位远。
第 2 步后,蚂蚁距边界右侧 5 单位远。
第 3 步后,蚂蚁距边界右侧 2 单位远。
第 4 步后,蚂蚁距边界左侧 2 单位远。
蚂蚁从未返回到边界上,所以答案是 0 。

提示:

1 <= nums.length <= 100
-10 <= nums[i] <= 10
nums[i] != 0

思路:

【教3妹学编程-算法题】3028. 边界上的蚂蚁_第3张图片

遍历,
一边遍历数组,一边累加元素,如果发现累加值等于 000,说明返回到边界,把答案加一。

java代码:

class Solution {
    public int returnToBoundaryCount(int[] nums) {
        int ans = 0;
        int sum = 0;
        for (int x : nums) {
            sum += x;
            if (sum == 0) {
                ans++;
            }
        }
        return ans;
    }
}

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