L'éditeur php Xinyi peut rencontrer le problème d'une erreur introuvable lors de l'écriture de scripts Go, empêchant le script de fonctionner comme prévu. Il s’agit d’un problème courant, mais qui peut être résolu. Cet article vous présentera certaines causes possibles de ce problème et proposera des solutions pour vous aider à résoudre ce problème plus facilement et à assurer le bon fonctionnement du script Go.
J'essaie de résoudre ce problème de leetcode https://leetcode.com/problems/two-sum/ Mais pour une raison quelconque, cela ne fonctionne pas et je ne comprends vraiment pas ce qui ne va pas. Il renvoie simplement [-1 -1] tandis que [100 137] est la sortie correcte.
package main import "fmt" func main() { arr := []int{10, 40, 1, 4, 100, 137} targetVal := 237 // twoSum(arr, targetVal) fmt.Println(twoSum(arr, targetVal)) } func twoSum(nums []int, target int) []int { starter := 0 // loop which is supposed to find first occurence of element that is less than target for i := 0; i < len(nums); i++ { if nums[i] < target { starter = i break } } // loop that iterates over remaining part of a slice (starting from nums[starter]) for i := starter; i < len(nums); i++ { if target-nums[starter] == nums[i] { return []int{nums[starter], nums[i]} } } return []int{-1, -1} }
Je n'ai aucune compétence en débogage pour le moment, donc je me suis juste assuré que nums[starter], nums[i], toutes les boucles fonctionnaient comme prévu, j'ai utilisé fmt.println() pour enregistrer leurs valeurs et ça semblait être au bon endroit, je ne sais pas ce qui ne va pas
Le problème avec votre code est qu'il n'entre jamais dans le if
if target-nums[starter] == nums[i]
starter restera à 0 après la première boucle car elle ne stockera que la première valeur inférieure à la cible.
Si vous n'êtes pas préoccupé par les performances, cette fonction o(n²) produit le résultat correct :
func twoSum(nums []int, target int) []int { for i := 0; i < len(nums); i++ { for j := 0; j < len(nums); j++ { if nums[i]+nums[j] == target && i != j { return []int{j, i} } } } return []int{-1, -1} }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!