【发布时间】:2023-01-09 05:50:26
【问题描述】:
问题:
给定一个整数数组 nums,计算该数组的主元索引。
主元索引是指严格位于索引左侧的所有数字之和等于严格位于索引右侧的所有数字之和的索引。
如果索引位于数组的左边缘,则左边的和为 0,因为左边没有元素。这也适用于数组的右边缘。
返回最左边的枢轴索引。如果不存在这样的索引,则返回 -1。
代码:
class Solution { public int sumA(int a, int b, int[] s){ int res=0; for(int i = a; i<b; i++){ res= res + s[i]; } return res; } public int pivotIndex(int[] nums) { int sum = 0; int i=0; int flag = 0; int x = nums.length; sum= sumA(0, x, nums); for(i = 1; i < nums.length; i++){ if((sum - nums[i] - sumA(0, i-1, nums)) == (sumA(0, i-1, nums))){ flag=1; break; } } if(flag == 1) return i; else if((i==0) ||(i==x)) return 0; else return -1; } }
【问题讨论】:
-
您有什么问题或疑虑?
-
当你的索引
i是0或x时,为什么你返回0? -
谢谢你们,我解决了这个问题,我是编码的初学者,我希望变得更好!
标签: java