[Likou Daily Question 01] Die Summe zweier Zahlen

Ich habe eine neue Kolumne eröffnet, um meine täglichen Tests aufzuzeichnen und auch das tägliche Lernen zur Gewohnheit zu machen. Ich freue mich darauf, nach einem Jahr bei mir selbst zu bleiben!

1. Thema

Suchen Sie bei einem gegebenen ganzzahligen Array  nums und einem ganzzahligen Zielwert  die beiden Ganzzahlen   , deren  Summe der Zielwert target im Array  ist  , und geben Sie deren Array-Indizes zurück.target

Sie können davon ausgehen, dass es für jede Eingabe nur eine Antwort gibt. Allerdings darf dasselbe Element im Array in der Antwort nicht wiederholt vorkommen.

Sie können die Antworten in beliebiger Reihenfolge zurückgeben.

Beispiel 1:

Eingabe: nums = [2,7,11,15], Ziel = 9
 Ausgabe: [0,1]
 Erläuterung: Da nums[0] + nums[1] == 9 ist, gebe ich [0, 1] zurück.

Beispiel 2:

Eingabe: Nums = [3,2,4], Ziel = 6
 Ausgabe: [1,2]

Beispiel 3:

Eingabe: Nums = [3,3], Ziel = 6
 Ausgabe: [0,1]

Zweitens: Denkanalyse

Manche Menschen verlieben sich, manche fahren nachts, um das Meer zu sehen, und manche können das erste Problem von LeetCode nicht lösen.

Ich bin es (°̥̥̥̥̥̥̥̥o°̥̥̥̥̥̥̥̥)
 

Aber es ist in Ordnung, „Deliberate Practice“ sagte gut, wir müssen unsere eigenen Mängel finden, das ist unser Feedback, und es dann stärken, nach ein paar Zyklen ist es für uns schwierig, uns nicht zu verbessern.

Ich las zuerst die Antwort, fuhr dann mit dem Debuggen fort und schrieb sie schließlich auf.

Ohne weitere Umschweife, hier ist mein Denkprozess:

Da wir die Summe zweier Zahlen suchen, müssen wir zunächst zwei Variablen i und j zum Durchlaufen des Arrays definieren.

Dann bin ich mehrmals auf die Grube getreten. Mir ist nicht aufgefallen, dass im Titel stand: „Dasselbe Element im Array darf in der Antwort nicht wiederholt vorkommen.“ (Das erinnert mich auch daran, dass es sehr wichtig ist, die Fragen sorgfältig zu lesen, wenn die Fragen stellen ! )

Da es nicht wiederholt werden kann, lassen wir i direkt vom Index 0 aus traversieren und j von i+1 aus traversieren.

Schließlich ist es das Schreiben des Rückgabewerts. Es ist das erste Mal, dass ich auf das Problem der Rückgabe eines Arrays stoße, und es reicht aus, einmal auf die Grube zu treten. Schreiben Sie es jetzt einfach so: return new int [] {}; Wenn Sie später darauf stoßen, können Sie es ausführlich lernen.

3. Vollständiger Code

class Solution {
    public int[] twoSum(int[] nums, int target) {
         
        for(int i = 0 ;i<nums.length;i++ ){
            for(int j = i+1 ; j< nums.length; j++){
                if(nums[i]+nums[j]==target){
                    return new int[]{i,j};
                }
            }
        }

        return new int[]{0};
    }
}

Das Obige ist der gesamte Inhalt dieses Blogs. Wenn es Mängel gibt, weisen Sie sie bitte darauf hin. Ich freue mich darauf, gemeinsam mit Ihnen Fortschritte zu machen!

Guess you like

Origin blog.csdn.net/C_Small_Cai/article/details/132629040