题解 | #相等的草堆#

相等的草堆

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

一、知识点:

遍历、数组

二、文字分析:

  1. 计算数组的总和sum。同时初始化leftSum为0。
  2. 遍历数组,对于每个位置i,判断leftSum是否等于sum减去当前位置的重量和右侧草堆的总重量。如果相等,则返回当前位置i作为平衡点。
  3. 更新leftSum,将其加上当前位置的重量。
  4. 遍历结束后仍未找到平衡点,则返回-1。

时间复杂度为O(n),空间复杂度为O(1)。

三、编程语言:

java

四、正确代码:

import java.util.*;

public class Solution {
    public int pivotIndex(int[] nums) {
        int sum = 0;
        int leftSum = 0;

        for (int num : nums) {
            sum += num;
        }

        for (int i = 0; i < nums.length; i++) {
            if (leftSum == sum - nums[i] - leftSum) {
                return i;
            }
            leftSum += nums[i];
        }

        return -1;
    }
}

全部评论

相关推荐

lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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