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

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

时间:2024-02-07 16:32:11浏览次数:32  
标签:步后 边界 nums int 编程 妹学 单位 3028 蚂蚁

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

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

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

题目:

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

给你一个 非零 整数数组 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. 边界上的蚂蚁_遍历数组_03

遍历, 一边遍历数组,一边累加元素,如果发现累加值等于 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;
    }
}

标签:步后,边界,nums,int,编程,妹学,单位,3028,蚂蚁
From: https://blog.51cto.com/u_6813689/9638770

相关文章

  • C++编程练习||1.类模板2.整数集合类3.复数集合类,模板结合
    1.类模板 类模板的作用  使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型(包括基本类型的和用户自定义类型)。  类模板的声明  类模板template<模板参数表>class类名{类成员声明};  ......
  • 探索C语言结构体:编程中的利器与艺术
    ✨✨欢迎大家来到贝蒂大讲堂✨✨......
  • 探索C语言结构体:编程中的利器与艺术
    ✨✨欢迎大家来到贝蒂大讲堂✨✨......
  • 【office编程】VB删除指定excel中行
    打开Excel中的VisualBasic编辑器,键入以下代码:SubBatchDelete()DiminputstrAsStringDimresult()AsStringDimsheet_no()AsStringDimstart_end()AsStringDimi,n,num,WS_CountAsIntegerDimwsAsWorksheetinputst......
  • C++编程练习||1.排序函数模板2.函数模板3.重载printArray函数模板
    1.排序函数模板已知主函数如程序后缀代码所示,请为其编写适当的模板函数,使主函数的bubbleSort函数可以对一个整型数组和一个浮点数数组进行输入、排序、输出操作。#include<iostream>#include<iomanip>usingnamespacestd;template<typenameT>voidbubbleSort(T*arr,......
  • 打造个性化日历:Python编程实现,选择适合你的方式!
    在本文中,我们将使用Python编写一个简单的日历程序。虽然市面上已经存在现成的日历功能,并且有第三方库可以直接调用实现,但我们仍然希望通过自己编写日历程序来引出我认为好用的日历实现。希望这篇文章能够对你有所帮助。在Python官方文档中,我们可以找到一个名为"calendar"的模块,它......
  • C++编程练习||实现分数类Fraction1、实现分数的+,-,*,/ 2、逻辑运算==、!=、<、<=、>、>
    题目:实现分数类Fraction  classFraction{   intnumerator,denominator;   public:   ....  };  要求:1、实现分数的+,-,*,/2、逻辑运算==、!=、<、<=、>、>=6种运输符号。3、实现输出<<,输入 >>操作符重载。  样例1输入:   12 ......
  • 2月摸鱼计划03 从并发编程本质了解Go高性能的本质
    1.0从并发编程本质了解Go高性能的本质1.1Goroutine协程可以理解为轻量级线程;Go更适合高并发场景原因之一:Go语言一次可以创建上万协成;“快速”:开多个协成打印。gofunc():在函数前加go代表创建协程;time.Sleep():协程阻塞,使主协程在子协程结束前阻塞不退出;乱序输出说......
  • C#多线程编程的Task(任务全面解析)
    原文链接:https://www.cnblogs.com/xietianjiao/p/7429742.htmlTask是.NET4.0加入的,跟线程池ThreadPool的功能类似,用Task开启新任务时,会从线程池中调用线程,而Thread每次实例化都会创建一个新的线程。 我们可以说Task是一种基于任务的编程模型。它与thread的主要区别是,它更加方便......
  • 【教3妹学编程-算法题】1696. 跳跃游戏 VI
    3妹:好冷啊,冻得瑟瑟发抖啦2哥 :没想到都立春了还这么冷啊~3妹:暴雪、冻雨、大雨,这天气还让不让人活啦!!!2哥 :哎,好多人都滞留的高铁站了,没法回家了3妹:我还不知道今天怎么回家呢,惨。2哥:3妹,要不别回去了吧,我们就地过年3妹:切,这里更冷,每天抖啊抖,跳啊跳才能缓解寒冷,我们家那儿可是有暖气......