题解 | #切片复制#
切片复制
https://www.nowcoder.com/practice/007731bde92a4291a2fe10ef2bc57cea
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param src int整型一维数组 源切片 * @param des int整型一维数组 目的切片 * @return int整型一维数组 */ func sliceCopy( src []int , des []int ) []int { // write code here des = src[:] return des }
这样不是更简单么,不用make也不用copy函数了,不过这样好像有违背题目本来的意思。。。
---
或者说这题目本来给的des就不太对,理论上des的capacity应该大于等于src的lenght的,结果des的capacity是0,所以如果正常的话应该是这样的
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param src int整型一维数组 源切片 * @param des int整型一维数组 目的切片 * @return int整型一维数组 */ func sliceCopy( src []int , des []int ) []int { // write code here des = des[:len(src)] copy(des,src) return des }
不过我觉得可以写个测试代码测一下
package main import "fmt" func sliceCopy(src []int, des []int) []int { // write code here des = des[:len(src)] copy(des, src) return des } func main() { src := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} des := make([]int, 20) res := sliceCopy(src, des) fmt.Println(res) //[1 2 3 4 5 6 7 8 9 10] }
没毛病,看来就是题目给的des有问题