初级会员
  • 第 12119 位会员
  • CppToGo
  • 2017-09-09 07:39:35
  • 197
  • Offline
  • 20 39

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 在对slice进行range的时候,其实每一次都是进行了深拷贝的, 若不进行深拷贝,切片b的输出结果应该为{200,300,103} ``` package main import "fmt" func main() { a := [3]int{1, 2, 3} b := []int{1, 2, 3} for k, v := range a {//v只获取到了a数组中的值 if k == 0 { a[0], a[1] = 100, 200 fmt.Printf("k:%v a:%v\n", k, a) } a[k] = 100 + v } for k, v := range b {//每一次循环v是对b[k]的深拷贝 ,这样才可以解释{101,200,103}的输出结果 if k == 0 { b[0], b[1] = 100, 200 fmt.Printf("k:%v b:%v\n", k, b) } b[k] = 100 + v } fmt.Printf("a: %v\n b: %v\n", a, b) } ``` 输出结果为: ``` k:0 a:[100 200 3] k:0 b:[100 200 3] a: [101 102 103] b: [101 300 103] ```
  • 问题没怎么搞懂要考察什么,问题是计算移除所有元素所需能量, 这移除方法就有很多,所需能量也不同,我想可能想问的是所需最少能量吧。如果按照这种思路来分析 - 1 队列中元素自身的值就代表能量,每次执行移除操作前都是前移或者后移一种, - 2 由此可以选择二分法来计算 - 3 将队列中最小的数字找到,根据最小元素位置分为,前组 和 后组 - 4 计算(前组)和(自身 + 后组)的能量进行比较 若前组能量小,则选择后移;反之,则前移。 - 5 移动元素直到最小的元素达到移除位置,移除 - 6 若队列中还有元素,则回到 步骤3 ;若没有,则完成
  • 关于3数组中重复数字那题 - 1、有个问题就是,`input[input[i]]`,在此题切片中没有越界危险, 如果切片中存在一个大于切片长度的值,会导致程序崩溃。
  • 您应该讲代码存在本地,引用本地的代码。