724.配列の中心インデックスを見つける
整数型の配列番号が与えられた場合、配列の「センターインデックス」を返すメソッドを記述します。
中央インデックスの配列として定義されます。配列の中央の左側のインデックスは、右側のすべての要素の合計とすべての要素の合計に等しくなります。
配列に中央インデックスがない場合は、-1を返す必要があります。配列に複数の中央インデックスがある場合は、左に最も近いものを返す必要があります。
例1:
输入:
nums = [1, 7, 3, 6, 5, 6]
输出:3
解释:
索引 3 (nums[3] = 6) 的左侧数之和 (1 + 7 + 3 = 11),与右侧数之和 (5 + 6 = 11) 相等。
同时, 3 也是第一个符合要求的中心索引。
例2:
输入:
nums = [1, 2, 3]
输出:-1
解释:
数组中不存在满足此条件的中心索引。
説明:
- numsの長さの範囲は[0、10000]です。
- nums [i]は、[-1000、1000]の範囲の整数になります。
方法1:
接頭辞とアイデア。
参照コード
public int pivotIndex(int[] nums) {
int sum = Arrays.stream(nums).sum();
int leftSum = 0;
for (int i = 0; i < nums.length; i++) {
if (leftSum * 2 + nums[i] == sum) {
return i;
}
leftSum += nums[i];
}
return -1;
}
の結果
- ストリーム効率は少し低いです〜