算法分析-两数之和
使用Java尝试了leetCode的算法题 两数之和
没有像JavaScript一样的indexOf方法能够直接寻找数组某一元素的下标,所以使用了两层for循环,先找到第一个数,再继续遍历找第二个数。结果时间复杂度不出意外的O(N)。
然后看了下官方的题解,使用一个Map将第二个数和其下标存起来,后面就节省下了一层遍历,使用map.get省下了一层遍历的时间,时间复杂度来到了O(1)。
这给我的启发是:如果能使用Map,那么则尽量避免遍历。此后如果再遇到多层的for循环,则考虑在第一次遍历的时候创建Map,后续的循环使用Map会节省很多性能。
评论