配列の中心インデックスを探す

3296 ワード

タイトル
整数タイプの配列numsを指定するには、配列の「中心インデックス」を返す方法を作成します.
配列中心インデックスを定義します.配列中心インデックスの左側のすべての要素が加算され、右側のすべての要素が加算された和に等しいです.
配列に中心インデックスが存在しない場合は、-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]の範囲の整数になります.
構想
配列を2回遍歴することによって、配列要素全体の和が初めて取得される.2回目の遍歴で中心インデックスが見つかりました.
インプリメンテーション
public int pivotIndex(int[] nums) {
     
    int sum = 0, leftSum = 0;
    for (int num : nums) {
     
        sum += num;
    }
    for (int i = 0; i < nums.length; i++) {
     
        if (sum - nums[i] - leftSum == leftSum) {
     
            return i;
        } else {
     
            leftSum += nums[i];
        }
    }
    return -1;
}

タイトルソース:力ボタンリンク:https://leetcode-cn.com/problems/find-pivot-index