美文网首页
Sum:Two sum+3Sum+3Sum closest+4S

Sum:Two sum+3Sum+3Sum closest+4S

作者: 雨宝_f737 | 来源:发表于2018-12-24 17:22 被阅读0次

    Two sum:

    对于每个数,寻找这个数之前是否有和自己配对的数。在循环的时候同时记录已经访问过的数,以便后面的数进行查找。

    对于只有查找操作的数据结构,最好的当然是哈希,STL中unordered_map使用的是哈希实现查找复杂度是O(1),map是使用的平衡二叉树所以是O(log(n))复杂度。

    3Sum:

    转换为2Sum问题,复杂度为O(n * n),如果使用上述2Sum解的话,还需要一个额外的unordered_map存数据。

    由于复杂度大于排序的复杂度,可以先排个序,同时排序的话孩能处理数字重复的问题。

    使用双指针获取两个数相加为target,遇到target后注意要判断相等的数,与当前两个数相等的数的配对情况都是重复的,可忽略。

    3Sum Closest:

    同3Sum,只需在内部判断三个数的和与target的距离,距离近则记录,距离为0跳出循环。

    4Sum:

    3Sum外面套一层。

    相关文章

      网友评论

          本文标题:Sum:Two sum+3Sum+3Sum closest+4S

          本文链接:https://www.haomeiwen.com/subject/efuzkqtx.html