C++怎么实现四数之和


这篇文章主要介绍了C++怎么实现四数之和的相关知识,内容详细易懂,操作简单快 香港云主机捷,具有一定借鉴价值,相信大家阅读完这篇C++怎么实现四数之和文章都会有所收获,下面我们一起来看看吧。Given an arraySofnintegers, are there elementsa,b,c, anddinSsuch thata+b+c+d= target? Find all unique quadruplets in the array which gives the sum of target.Note:Elements in a quadruplet (a,b,c,d) must be in non-descending order. (ie,abcd)The solution set must not contain duplicate quadruplets. For example, given array S = {1 0 -1 0 -2 2}, and target = 0.A solution set is:
(-1, 0, 0, 1)
(-2, -1, 1, 2)
(-2, 0, 0, 2)LeetCode 中关于数字之和还有其他几道,分别是Two Sum,3Sum,3Sum Closest,虽然难度在递增,但是整体的套路都是一样的,在这里为了避免重复项,我们使用了 STL 中的 TreeSet,其特点是不能有重复,如果新加入的数在 TreeSet 中原本就存在的话,插入操作就会失败,这样能很好的避免的重复项的存在。此题的 O(n^3) 解法的思路跟3Sum基本没啥区别,就是多加了一层 for 循环,其他的都一样,代码如下:解法一:但是毕竟用 TreeSet 来进行去重复的处理还是有些取巧,可能在 Java 中就不能这么做,那么还是来看一种比较正统的做法吧,手动进行去重复处理。主要可以进行的有三个地方,首先在两个 for 循环下可以各放一个,因为一旦当前的数字跟上面处理过的数字相同了,那么找下来肯定还是重复的。之后就是当 sum 等于 target 的时候了,在将四个数字加入结果 res 之后,left 和 right 都需要去重复处理,分别像各自的方面遍历即可,参见代码如下:解法二:关于“C++怎么实现四数之和”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C++怎么实现四数之和”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注开发云行业资讯频道。

相关推荐: 如何在win10电脑上获取系统日志

这篇文章主要介绍了如何在win10电脑上获取系统日志,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在win10电脑上获取系统日志方法/步骤:1.打开win10系统中的控制面板界面,将查看方式改为…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/14 15:46
下一篇 07/14 15:46

相关推荐