leetcode两数之和如何求解-创新互联

创新互联建站是一家专业提供满洲企业网站建设,专注与网站制作、网站设计H5高端网站建设、小程序制作等业务。10年已为满洲众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

leetcode是程序员刷题网站,第一题是找出数组中两数相加等于目标值的数据。

本文介绍解答这个题目的几个方法。

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

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

  2. 2

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

    完整实现如下所示:

  3. 3

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

  4. 4

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

  5. 5

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

    优化后解法如下:

    END

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

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

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页标题:leetcode两数之和如何求解-创新互联
当前链接:http://azwzsj.com/article/ccgiee.html