Supposons que j'ai un tableau à deux dimensions A
, et il est indiqué que quelque part à l'intérieur il y a un objet my_element
. Quel est le moyen le plus rapide de trouver ses coordonnées? J'utilise Ruby 1.8.6.Ruby tableau à deux dimensions: trouver les coordonnées d'un objet
Répondre
Ceci est un moyen. Cependant, je ne suis pas sûr que ce soit le plus rapide.
class Array
def coordinates(element)
each_with_index do |subarray, i|
j = subarray.index(element)
return i, j if j
end
nil
end
end
array = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
array.coordinates(3) # => [0, 2]
array.coordinates(9) # => [2, 2]
array.coordinates(42) # => nil
Implentation élégante de la méthode des coordonnées mais je ne l'ajouterais pas dans la classe Array car elle ne s'applique pas vraiment à tous les tableaux. Similaire à l'argument de savoir si une méthode "sum" doit être ajoutée à Array. – mikej
@mikej Yup, totalement d'accord. Je l'ai ajouté dans la classe Array à des fins de démonstration uniquement. – mtyaka
Eh bien, comme je le pensais. Quoi qu'il en soit, merci! – gmile
- 1. Ruby tableau objet trouver
- 2. Tableau dynamique à deux dimensions
- 3. Tri tableau à deux dimensions dans AS3
- 4. PHP à deux dimensions Tableau Associatif implosent
- 5. randomise un tableau à deux dimensions?
- 6. Aborder un seul tableau de pointeur dimensions à deux dimensions
- 7. C++ - Tableau à deux dimensions vectoriel d'objets
- 8. Convertir un tableau à deux dimensions
- 9. json_encode sur un tableau à deux dimensions
- 10. Matlab - impression de sous-tableau tableau à deux dimensions
- 11. Tableau unique en tableau à deux dimensions en PHP
- 12. Recherche de voisins dans un tableau à deux dimensions
- 13. écriture tableau à deux dimensions pour classer et lire tableau à deux dimensions de fichier en utilisant Visual C++
- 14. Ruby: OOP & tableau à deux dim. Question
- 15. Enregistrement de sons à l'aide d'un tableau à deux dimensions
- 16. PHP comparer tableau de deux dimensions
- 17. Ajouter des chaînes à un tableau à deux dimensions
- 18. lier un tableau à deux dimensions à un répéteur - erreur
- 19. Trouver et marquer la plus grande des trois valeurs dans un tableau à deux dimensions
- 20. Référence d'une colonne de tableau à deux dimensions dans C?
- 21. Problèmes de mémoire avec le tableau à deux dimensions
- 22. Récupère des éléments adjacents dans un tableau à deux dimensions?
- 23. for-loop pour comparer le tableau à deux dimensions ??? Help!
- 24. Commander une colonne dans un tableau à deux dimensions
- 25. Générer un tableau à deux dimensions via LINQ
- 26. Trouver la position d'un élément dans un tableau à deux dimensions?
- 27. Trouver les coordonnées d'un point entre deux points?
- 28. Tableau à deux dimensions, calcul de la valeur maximale
- 29. retour tableau à deux dimensions de la fonction en C++
- 30. comment initialiser un tableau à deux dimensions PHP
Il n'y a vraiment qu'une seule façon: faire une boucle dans tous les emplacements jusqu'à ce que vous trouviez ce que vous cherchez (voir la réponse de mtyaka). Dans le pire des cas, c'est 'O (m * n)' où 'm' et' n' sont le nombre de lignes et de colonnes dans votre tableau. –