
这道题我们首先会想到暴力法,也就是我们做两层循环,第二层循环开始的坐标一直比第一层循环的大一,这样就不会出现重复元素相加刚好得到目标值的这种情况。下面给出代码。

显然,上面这种解法的时间复杂度为O(n²),我们就要思考是否存在更好的解法。于是想到了HashMap这个好用的东西。

我们先创建一个HashMap,然后根据这样一种算法:进行一次循环,如果该次循环到的数组的值与目标值的差值已经在HashMap中,那么我们就把该次的 i 值和包含该键的HashMap的键放入数组返回。否则将对应的 i 数组的值和 i 放入HashMap中。
博客介绍了求解数组中元素相加得目标值的方法。先提出暴力法,通过两层循环避免重复元素相加,时间复杂度为O(n²)。接着引入更好的解法,利用HashMap,通过一次循环,判断数组值与目标值差值是否在HashMap中,以优化求解。
1797

被折叠的 条评论
为什么被折叠?



