Heim  >  Artikel  >  Java  >  So finden Sie den zentralen Index eines Arrays in Java

So finden Sie den zentralen Index eines Arrays in Java

王林
王林nach vorne
2020-04-20 16:09:592404Durchsuche

So finden Sie den zentralen Index eines Arrays in Java

Zweck:

Schreiben Sie bei gegebenen Array-Zahlen vom Typ Integer eine Methode, die den „Mittelindex“ des Arrays zurückgibt.

Definition des Array-Mittelindex:

Die Summe aller Elemente auf der linken Seite des Array-Mittelindex ist gleich der Summe aller Elemente auf der rechten Seite des Array-Mittelindex . Wenn das Array keinen Mittelindex hat, sollten wir -1 zurückgeben. Wenn das Array mehrere mittlere Indizes hat, sollten wir den Index zurückgeben, der am nächsten links liegt.

Empfohlene verwandte Video-Tutorials: Java-Video

Beispiel 1:

输入: 
nums = [1, 7, 3, 6, 5, 6]
输出: 3
解释: 
索引3 (nums[3] = 6) 的左侧数之和(1 + 7 + 3 = 11),与右侧数之和(5 + 6 = 11)相等。
同时, 3 也是第一个符合要求的中心索引。

Beispiel 2:

输入: 
nums = [1, 2, 3]
输出: -1
解释: 
数组中不存在满足此条件的中心索引。

Anleitung:

Der Längenbereich von Nums beträgt [0, 10000].

Alle Zahlen[i] sind Ganzzahlen im Bereich [-1000, 1000].

Lösungsidee:

Verwenden Sie sum, leftSum und rightSum, um die Summe zu speichern, die Summe auf der linken Seite von i und die Summe auf der rechten Seite von i. Berechnen Sie eine Summe Um die folgenden Berechnungen einfacher zu gestalten, summieren Sie zuerst und verschieben Sie dann ein i von links nach rechts. Beachten Sie, dass i separat betrachtet werden muss, wenn es das erste Element ist. Berechnen Sie die Werte links und rechts von i und vergleichen Sie sie. Wenn leftSum=rightSum, geben Sie i zurück.

Java-Code:

class Solution {
    public int pivotIndex(int[] nums) {
        if (nums == null || nums.length == 0) {
            return -1;
        }
 
        int sum = 0;
        int leftSum = 0;
        int rightSum = 0;
 
        for (int i = 0; i < nums.length; i++) {
            sum += nums[i];
        }
 
        for (int i = 0; i < nums.length; i++) {
            if (i == 0) {
                leftSum = 0;
            } else {
                leftSum += nums[i - 1];
            }
            rightSum = sum - leftSum - nums[i];
 
            if (leftSum == rightSum) {
                return i;
            }
        }
 
        return -1;
    }
}

Empfohlenes Tutorial: Erste Schritte mit Java

Das obige ist der detaillierte Inhalt vonSo finden Sie den zentralen Index eines Arrays in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen