广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    leetcode两数之和如何求解

    来源:网络收集  点击:  时间:2024-03-01
    【导读】:
    leetcode是程序员刷题网站,第一题是找出数组中两数相加等于目标值的数据。本文介绍解答这个题目的几个方法。工具/原料morenotepad++等编辑器g++编译器方法/步骤1/5分步阅读

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

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

    2/5

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

    完整实现如下所示:

    3/5

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

    4/5

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

    5/5

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

    优化后解法如下:

    注意事项

    使用关联容器相比暴力算法更高效,以空间换取时间

    不断优化算法,提升编码能力。如同样使用关联容器,也可以有更优的解法

    LEETCODE算法两数之和
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_182287.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 16:06:39  耗时:0.025
    0.0252s