《零基础Go语言算法实战》
【题目 1-18】切片的反转
请编写一个名为 reverse 的函数,采用整数切片并在不使用临时切片的情况下将切片反转。
【解答】
可以通过 for 循环交换切片中每个元素的值,使其从左向右滑动。最终,所有元素都将
被反转。代码如下:
package main
import "fmt"
func reverse(slice []int) {
for x, y := 0, len(slice)-1; x < y; x, y = x+1, y-1 {
slice[x], slice[y] = slice[y], slice[x]
}
}
func main() {
slice := []int{1, 6, 168}
reverse(slice)
fmt.Println(slice)
}
//$ go run interview1-18.go
//[168 6 1]