Senior
func revert(nums []int) { // 1 2 3 4 => 4 3 2 1 } func main() { a := []int{1,2,3,4,5} revert(a) fmt.Println(a) } func revert(nums []int) { // 1 2 3 4 => 4 3 2 1 l, r := 0, len(nums)-1 for l < r { nums[l], nums[r] = nums[r], nums[l] l++ r-- } } func main() { a := []int{1,2,3,4,5} revert(a) fmt.Println(a) }
sobes.tech AI
Պատասխան AI-ից
Представлен кодда, revert функциясы nums кесимесин кабыл алып, элементтердин тартибин тескерисинче кылат, эки көрсөткүчтү колдонуп — бири баштан, бири аягынан. Сол көрсөткүч оң көрсөткүчтөн кичик болсо, элементтер алмаштырылат жана көрсөткүчтөр бири-бирине жакындашат.
Go тилиндеги мисал код:
package main
import "fmt"
func revert(nums []int) {
l, r := 0, len(nums)-1
for l < r {
nums[l], nums[r] = nums[r], nums[l]
l++
r--
}
}
func main() {
a := []int{1, 2, 3, 4, 5}
revert(a)
fmt.Println(a) // Чыгуу: [5 4 3 2 1]
}
Go тилиндеги слайстер шилтемеден өткөрүлөт, ошондуктан функциянын ичинде жасалган өзгөртүүлөр оригиналдуу слайска таасир этет, бул чыгууда көрүнүп турат.