题解 | #相等的草堆#

相等的草堆

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 n = nums.length;
        int[] preSum = new int[n + 1];
        int[] suSum = new int[n + 1];
        for(int i = 1; i <= n; i++) {
            preSum[i] = preSum[i - 1] + nums[i - 1];
        }
        for(int i = n - 1; i >= 0; i--) {
            suSum[i] = suSum[i + 1] + nums[i];
        }
        for(int i = 1; i < n; i++) {
            if(preSum[i] == suSum[i + 1]) {
                return i;
            }
        }
        return -1;
    }
}

全部评论

相关推荐

03-18 09:45
莆田学院 golang
牛客749342647号:佬,你这个简历模板是哪个,好好看
点赞 评论 收藏
分享
韵不凡:软件开发的工作需要博士吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务