题解 | #相等的草堆# java
相等的草堆
https://www.nowcoder.com/practice/0e2f3b27bbdc45fcbc70cc4fd41e15fe
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int pivotIndex (int[] nums) {
// write code here
int sum = 0;
int n = nums.length;
for (int i = 0; i < n; ++i)
sum += nums[i];
int cnt = 0;
for (int i = 0; i < n; ++i) {
sum -= nums[i];
if (sum == cnt) return i;
cnt += nums[i];
}
return -1;
}
}
Java编程语言。
该题考察的是数组的遍历和条件判断。
代码的文字解释如下:
- 在pivotIndex方法中,首先定义变量sum用于存储数组元素的和,初始值为0。
- 然后,获取数组的长度,将其存储在变量n中。
- 使用循环遍历数组的所有元素,并将每个元素累加到sum中。
- 定义变量cnt用于记录当前遍历位置之前的元素的和,初始值为0。
- 再次使用循环遍历数组的所有元素。
- 在循环中,首先从sum中减去当前元素的值,得到剩余元素的和。
- 判断剩余元素的和是否等于cnt,如果相等,则表示当前位置为中心索引,返回当前索引值。
- 将当前元素的值累加到cnt中,更新cnt的值。
- 如果没有找到中心索引,最后返回-1。

查看2道真题和解析