题解 | #相等的草堆#

相等的草堆

https://www.nowcoder.com/practice/0e2f3b27bbdc45fcbc70cc4fd41e15fe

考察数组操作。遍历数组分别讨论每个值的左右和去判断就行了。用一个数记录总和,两个数组分别记录每个数左右两侧的和。判断这两个数组相同位置是否有相同的值

完整Java代码如下所示

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型
     */
    public int pivotIndex (int[] nums) {
        // write code here
        int[] left = new int[nums.length]; //存储每个元素左侧的草堆总重量
        int[] right = new int[nums.length]; //存储每个元素右侧的草堆总重量
        int res = -1;
        for(int i=1;i<nums.length; i++){ //跳过最开端的一个
            left[i] = left[i-1]+nums[i-1];
        }
        for(int i=nums.length-1;i>0; i--){ //跳过最后面的一个
            right[i-1] = right[i]+nums[i];
        }
        for(int i=0; i<nums.length; i++){
            if(left[i]==right[i]){
                return i;
            }
        }
        return res;
    }
}

全部评论

相关推荐

每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:15
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务