题解 | #切片复制#

切片复制

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有问题

全部评论

相关推荐

04-11 21:31
四川大学 Java
野猪不是猪🐗:(ja)va学弟这招太狠了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务