Ich habe jeden Tag LeetCode ausprobiert. 1. Zwei Summen (Python, Go)

Einführung

@Ishishow betreibt eine kostenlose englische Word-Site E-tan.

Ich möchte jeden Tag an Letcode arbeiten, um meine Fähigkeiten als Programmierer zu verbessern und meine eigene Art der Lösung zu finden.

Was ist Leetcode?

leetcode.com Dies ist die Praxis des Codierens von Interviews für Softwareentwickler. Insgesamt wurden mehr als 1.500 Codierungsfragen gestellt, und es scheint, dass in tatsächlichen Interviews häufig dieselben Fragen gestellt werden.

Einführung in Go Sprache + Algorithmus Ich werde es mit Golang und Python lösen, um mein Gehirn zu stärken. (Python ist schwach, aber erfahren)

Erster Tag

Two Sum

--Probleminhalt (japanische Übersetzung)

Wenn ein Array von ganzen Zahlen und "Zahlen" das ganzzahlige "Ziel" angibt, * ist die Summe "Ziel" *. * Gibt * den Index der beiden Zahlen zurück, so dass er * wird.

Es kann davon ausgegangen werden, dass jeder Eingang *** genau \ * eine Lösung ** hat und das * gleiche * Element nicht zweimal verwendet werden kann.

Antworten können in beliebiger Reihenfolge zurückgegeben werden.

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

Dieses Problem schien gut zu sein, wenn ich dem Wörterbuchtyp einen Wert zuwies und den Vorgang beendete, als (Zielwert) vorhanden war.

Übrigens habe ich die Schleifenverarbeitung bei der vollständigen Suche zuerst zweimal beschrieben, aber ich habe einen RunTimeError erhalten und die Antwort gesehen. .. ..

Python-Looping ist langsam. ..

--Antwortcode

  class Solution(object):
      def twoSum(self, nums, target):
          d = {} 
          for i in range(len(nums)):
              if (target - nums[i]) in d:
                  return [d[target - nums[i]],i]
              else:
                  d[nums[i]] = i
          return 0
  class Solution(object):
      def twoSum(self, nums, target):
          a = len(nums)
          for i in range(a):
              j = i+1
              while j!=a:
                  if nums[i] + nums[j] == target:
                      return [i,j]
                  j +=1
          return 0
                  

Da ein Fehler aufgetreten ist, war auch die schmerzhafte Verarbeitung der Einstellung von a = len (nums) leer, sodass ich sie im Wörterbuchtyp umgeschrieben habe. .. ..

  func twoSum(nums []int, target int) []int {
  	m := make(map[int]int)
  	for i, v := range nums {
  		idx, ok := m[target-v]
  		if ok {
  			return []int{idx, i}
  		}
  		m[v] = i
  	}
  	return nil
  }

Bei Go war die Ausführungszeit völlig anders!

Gründe, make zu verwenden

Wenn Sie keinen Anfangswert für Maps angeben, wird die Variable mit "nil (nil map)" initialisiert. nil map kann keine Elemente speichern. Wenn Sie Elemente speichern möchten, müssen Sie die Map initialisieren.

	idx, ok := m[target-v]

Wenn es diesen Wert gibt, wird True in ok eingegeben.

Go verwendet häufig Slices, da das Array eine feste Länge hat.

Da die Schreibmethode von Go nicht eindeutig ist, mache ich es während der Untersuchung, aber es scheint, dass ich beträchtliche Fähigkeiten erlangen werde, wenn ich dies beende!

Artikel, auf die verwiesen wird

[Go] Grundlegende Grammatik ⑤ (Assoziative Anordnung / Bereich)

Go language: Zusammenfassung zum Erstellen verschiedener Karten

Recommended Posts

Ich habe jeden Tag LeetCode ausprobiert. 1. Zwei Summen (Python, Go)
Ich habe jeden Tag LeetCode 9 ausprobiert. Palindrome Number (Python, Go)
Ich habe jeden Tag LeetCode ausprobiert. 14. Längstes allgemeines Präfix (Python, Go)
Ich habe jeden Tag LeetCode ausprobiert 26. Duplikate aus sortiertem Array entfernen (Python, Go)
Ich habe es mit Grumpy versucht (Python ausführen).
Ich habe versucht, mit Python Faiss zu laufen, Go, Rust
Ich habe Python> Decorator ausprobiert
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe die C-Erweiterung von Python ausprobiert
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe Line Benachrichtigung in Python versucht
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, PLSA in Python 2 zu implementieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, mit Python ② (Fibonacci-Zahlenfolge) aufzuklären.
Ich habe versucht, PPO in Python zu implementieren
Python: Ich habe das Problem des Handlungsreisenden ausprobiert
Wrangle x Python Buch Ich habe es versucht [1]
Mayungos Python Learning Episode 8: Ich habe versucht, Eingaben zu machen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Yahoo Wetter zu kratzen (Python Edition)
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Ich habe das Python Tornado Testing Framework ausprobiert
# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert
Ich habe versucht, zwei Jetson Nano-Hardware-PWMs aus der Jetson.GPIO Python-Bibliothek auszuführen.
[LIVE] Ich habe versucht, die Sonnenauf- und -untergangszeiten jeden Tag landesweit zu liefern
Python Tag 1
[Baseball Hack] Ich habe versucht, das Python MLB Score & Grade-Datenerfassungsskript mit Go in einem halben Tag zu kopieren
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe Hunderte Millionen SQLite mit Python ausprobiert
vprof - Ich habe versucht, den Profiler für Python zu verwenden