题解 | #相等的草堆#
相等的草堆
https://www.nowcoder.com/practice/0e2f3b27bbdc45fcbc70cc4fd41e15fe
- 题目考察的知识点
数组
- 题目解答方法的文字分析
先遍历一遍数组,求出数组和sum,然后第二次遍历数组,求出数组元素i的左边和sumleft.由于sumleft和数组元素i的右边和相等,所以存在关系2 * sumLeft + nums[i] == sum。在第二次遍历过程中返回符合此关系的i即可。否则返回-1
- 本题解析所用的编程语言
java
- 完整且正确的编程代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int pivotIndex (int[] nums) {
int len = nums.length;
int sum = 0,sumLeft=0;
for (int i = 0; i < len; i++) {
sum += nums[i];
}
for (int i = 0; i < len; ++i) {
if (2 * sumLeft + nums[i] == sum)
return i;
sumLeft += nums[i];
}
return -1;
}
}