📌  相关文章
📜  go reverse array - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:15:21.346000             🧑  作者: Mango

Go语言中的反转数组

在Go语言中,数组是一组相同数据类型的元素的集合。在很多情况下,我们需要对数组进行操作,其中之一就是将数组进行反转。下面是实现数组反转的方法。

方法1:双指针法
// 翻转数组
func reverse(arr []int) {
    for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 {
        arr[i], arr[j] = arr[j], arr[i]
    }
}

func main() {
    arr := []int{1, 2, 3, 4, 5}
    reverse(arr)
    fmt.Println(arr) // [5, 4, 3, 2, 1]
}

在该方法中,我们使用两个指针i和j,i从数组的第一个元素开始,j从数组的最后一个元素开始,循环交换两个指针指向的数组元素,直到i>=j为止,即数组完全翻转。

方法2:利用切片功能
// 翻转数组
func reverse(arr []int) []int {
    result := make([]int, len(arr))
    copy(result, arr)
    for i := 0; i < len(result)/2; i++ {
        j := len(result) - i - 1
        result[i], result[j] = result[j], result[i]
    }
    return result
}

func main() {
    arr := []int{1, 2, 3, 4, 5}
    arr = reverse(arr)
    fmt.Println(arr) // [5, 4, 3, 2, 1]
}

在该方法中,我们使用make函数创建一个等长度的新数组result,将原数组的内容复制到result中,然后遍历result数组将前后的元素交换。该方法相比第一种方法更加安全,因为它不会修改原数组。

无论是哪一种方式,数组的反转都是很常见的操作。在Go语言中,我们提供了很多方法来操作数组,让我们的编程更加方便。