Junior — Middle
Чӣ гуна метавон ба таври муассир унсурро аз слайс бе нигоҳ доштани тартиби унсурҳо хориҷ кард, дар ҳоле ки мураккабии доимии амалиётро нигоҳ медорад?
sobes.tech AI
Ҷавоб аз AI
Барои хориҷ кардани ун element аз слайс дар Go бе нигоҳ доштани тартиби ун элемент ва бо амалиёт бо мураккабии доимӣ O(1), шумо метавонед ун элементро бо ун ун elementи охирини слайс иваз кунед ва сипас слайсро ба андозаи як кам кунед.
Масалан:
func removeUnordered(s []int, i int) []int {
s[i] = s[len(s)-1] // иваз кардани ун element бо охирин
return s[:len(s)-1] // кӯтоҳ кардани слайс
}
// Истифода:
s := []int{10, 20, 30, 40, 50}
s = removeUnordered(s, 1) // хориҷ кардани ун element дар индекс 1 (20)
// Акнун, масалан, s метавонад бошад [10, 50, 30, 40]
Ин усул тартиби ун элементҳоро нигоҳ намедорад, аммо хеле зуд кор мекунад, зеро ҳаракат додани ун элементҳо лозим нест.