算法分析-两数之和

算法学习2845 阅读0

使用Java尝试了leetCode的算法题 两数之和

没有像JavaScript一样的indexOf方法能够直接寻找数组某一元素的下标,所以使用了两层for循环,先找到第一个数,再继续遍历找第二个数。结果时间复杂度不出意外的O(N)。

然后看了下官方的题解,使用一个Map将第二个数和其下标存起来,后面就节省下了一层遍历,使用map.get省下了一层遍历的时间,时间复杂度来到了O(1)。

这给我的启发是:如果能使用Map,那么则尽量避免遍历。此后如果再遇到多层的for循环,则考虑在第一次遍历的时候创建Map,后续的循环使用Map会节省很多性能。

评论

发表评论