leetcode两数之和如何求解

 时间:2026-02-13 23:46:51

1、使用暴力法,执行两次遍历,当找出满足条件的数据时,提前结束循环。

这种算法,最差条件下需要遍历n乘以n次数,时间复杂度也就是n平方。

leetcode两数之和如何求解

2、为了优化暴力算法的最差情况,我们可以使用其他方式。因为要计算两个数据,所以是一一对应关系,我们可以很自然想到用c++中关联容器。

完整实现如下所示:

leetcode两数之和如何求解

3、首先,题目中要求不能使用同一个数据。所以,我们初始化map时,如果是相同的元素,还需要判断元素所在数组序号。

leetcode两数之和如何求解

4、然后再查找时,再判断对应元素的序号,去除找到同一个数据的情况。

leetcode两数之和如何求解

5、最优解法:上述解法还是太常规思维了,我们可以只使用一次遍历,并结合关联容器就可以了。因为我们并不关心相同元素到底获取哪一个,所以,没必要保存相同元素所有的序号。

优化后解法如下:

leetcode两数之和如何求解

  • MacBook Pro中如何让迅雷完成下载后自动关机
  • MAC系统如何开启自动纠正拼写
  • 在Mac上安装Wine (用于运行exe程序)
  • 全民飞机大战如何参与惊喜大转盘呢?
  • 在MacBook上怎么创建txt文件?
  • 热门搜索
    大连艺术学院怎么样 去水印的方法 插件怎么安装 家庭腌咸鸡蛋的土方法 雨伞图片大全 怎么还原系统 蜈蚣咬伤的救治方法 君子兰叶子发黄怎么办 怎么灭蟑螂最有效 南瓜饼怎么做好吃又简单