go - golang中动态大小的数组?
问题描述
我想知道是否有任何方法可以创建动态大小的数组以避免下面代码中的运行时错误。
错误:
恐慌:运行时错误:Go 中的索引超出范围
代码:
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func nextLargerNodes(head *ListNode) []int {
var a []int
var pha int
hNum := 0
currNode := head
pha = 0
for currNode.Next != nil {
iter := currNode.Next
hNum = currNode.Val
//phb = pha + 1
for(iter.Next != nil){
if hNum < iter.Val {
hNum = iter.Val
break
} else if hNum == iter.Val{
hNum = 0
break
}
iter = iter.Next
}
a[pha] = iter.Val
pha++
hNum = 0
currNode = currNode.Next
}
return a
}
解决方案
您应该使用附加功能。
变种 []int
是一个切片,你可以把它想象成一个“动态数组”。为了向其中添加元素,您应该使用 append 方法。在您的代码中,您使用了数组语义。
a = append(a, iter.Val)
如果您预先知道切片中将包含多少元素,则可以使用预定义数量的元素创建切片。
a := make([]int, 10)
这将创建一个包含 10 个元素的切片。
推荐阅读
- mysql - 使用带有 ifnull 函数 MySQL 的联合语句
- excel - VBA Excel 将文件导出为 .csv,并将数据保存在正确的列中
- c# - OpenhardwareMonitorLib System.IO.FileNotFoundException
- c# - Redis sentinel 中的 C# 操作
- laravel - Laravel 中的临时切换应用程序密钥并将其用于字符串的加密/解密
- c# - 为什么 ASP.NET web api 3 项目在 ASP.NET web api 2 执行时没有请求就无法启动?
- python - 如何将熊猫数据框中的索引日期(最后一行)存储在变量中?
- python - Python:将熊猫 3d 数据帧转换为 X、Y、Z
- deep-learning - 一些迭代后 GAN 模型的准确性会降低
- c# - 如何在脚本统一中更改 RectTransfrom 的比例?