算法实现差异对切片赋值耗时的影响
在解决两数之和问题时,有两种常见的 go 代码实现。
第一种实现:
func twosum(nums []int, target int) []int {
m := make(map[int]int)
l := make([]int, 2, 2) // 切片 cap 和 len 设为 2
...
return l
}第二种实现:
func twoSum(nums []int, target int) []int {
m := map[int]int{}
...
return []int{firstIndex, lastIndex}
}问题是:为什么第二种实现比第一种实现耗时更长?
然而,根据给出的答案,代码本身没有任何问题。耗时的差异可能是由于以下因素:
- 测试数据集不同: leetcode 评测会使用不同的测试集,因此时间消耗会因输入数据而异。
- 多次提交:即使提交相同的代码,不同提交之间的耗时和内存消耗也会有差异。










