题解 | #相等的草堆#
相等的草堆
https://www.nowcoder.com/practice/0e2f3b27bbdc45fcbc70cc4fd41e15fe
知识点
数组
解题思路
先利用流计算出数组全部数的累加和,定义一个sumRight等于这个总值,定义一个sumLeft表示左边总值。
遍历走到第i个数时,如果sumRight减去nums[i]等于左边总值加上nums[i - 1]时,此时条件成立左边等于右边值,返回i。
走完遍历返回-1。
Java题解
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型 */ public int pivotIndex (int[] nums) { // write code here int sumRight = Arrays.stream(nums).sum(); int sumLeft = 0; for (int i = 0; i < nums.length; i++) { sumRight -= nums[i]; if(i != 0){ sumLeft += nums[i - 1]; } if(sumLeft == sumRight) { return i; } } return -1; } }