algo›problem
力扣第383场周赛
原周赛说明地址:第 383 场周赛
说明,本文章的题目由简单到困难, 现在的水平只能解决一下简单的题目😂。
我么有参加本次周赛,只是赛后将题目拿出来看一看,做一做。
3028. 边界上的蚂蚁
蚂蚁在边界上, 题目给出一个非零整数数组nums, 蚂蚁从第一个元素开始按照nums[i]进行移动,nums[i] > 0 向右移动nums[i], nums[i]<0向左移动-nums[i], 求蚂蚁返回边界的次数。
这个题目,蚂蚁在边界上,向左向右移动,我们只需要求得蚂蚁向右移动的补数加上向左移动的步数等于0,就表示蚂蚁返回了边界。
Java
class Solution {
public int returnToBoundaryCount(int[] nums) {
int walk = 0, ans = 0;
for(int i: nums){
walk += i;
if(walk == 0){
ans++;
}
}
return ans;
}
}
Python3
class Solution:
def returnToBoundaryCount(self, nums: List[int]) -> int:
side, count = 0, 0 # 初始化边界的位置,以及返回的次数
for i in nums:
# 表示回到了有边界
if side + i == 0: # 向右移动加上向左移动等于0,就表示返回到边界一次
count += 1
side += i
return count
JavaScript
/**
* @param {number[]} nums
* @return {number}
*/
var returnToBoundaryCount = function(nums) {
var ans = 0, sum=0;
for(var i of nums){
sum += i;
if(sum === 0){
ans++;
}
}
return ans;
};
JavaScript知识点
1、js中的foreach语法是for(var i of nums){}
,连接词是of,不想java、python中是in