码迷,mamicode.com
首页 > 其他好文 > 详细

two sum, three sum和four sum问题

时间:2017-06-27 10:03:56      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:复杂度   需要   nbsp   hash表   log   target   问题   排序   获取   

1. two sum问题

给定一组序列:[-4 -6 5 1 2 3 -1 7],然后找出其中和为target的一对数

简单做法:两层循环遍历,时间复杂度为n^2

升级版:对给定的序列建立一个hash表,然后只需要外层一层循环就可以了,时间复杂度为n

2. three sum问题

给定一组序列:[-4 -6 5 1 2 3 -1 7],然后找出其中和为target的三个数

简单做法:三层for循环,时间复杂度为n^3

升级版:

  如果看做是two sum升级,可以先从小到大排序,时间复杂度nlogn,然后固定一个数,前面的子列使用two sum的方法,

时间复杂度为n^2;

  也可以先排序,使用两层for循环,遍历子列,获取前两个数,然后对后面的hash过的子列找出另一个,时间复杂度为n^2;

3. four sum问题

可以类比three sum问题,时间复杂度可达到n^3

 

上述问题我就只能想到这种解法了,但是我感觉对时间复杂度还是不满意

two sum, three sum和four sum问题

标签:复杂度   需要   nbsp   hash表   log   target   问题   排序   获取   

原文地址:http://www.cnblogs.com/tuhooo/p/7083221.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!