笔试题29. LeetCode OJ (16)
来源:互联网 发布:英文说明书翻译软件 编辑:程序博客网 时间:2024/05/03 19:40
上个题绞尽脑汁的思考测试终于弄出结果了,所以遇到这个题的时候感觉松了口气。这个题要求三个数的和最接近所给的数,
意思就是找一个数组中三个数的和,使它最接近你所给的目标。我的思路是遍历,因为不遍历完所有情况根本就无法推测结果,难
道大家还有别的做法能减少计算的次数吗,我猜想如果排序后还是有可能的排序后能推测出数字的和范围,这个办法应该可行的,
但是仔细想想的话还是比较麻烦,需要考虑到的细节又会很多,因为我们需要的三个数并不一定是连续的三个数的,而且我们并不
知道"最接近的程度"是多大,这样也是在盲目的测试,所以我觉得我还是采用遍历的做法。
- 这个题需要注意的是若三个数的和等于target的话,那我们的工作不用继续了,直接返回target就行。
遍历的做法代码如下:
class Solution {public: int threeSumClosest(vector<int>& nums, int target) { int gap = 0; //差距,即和target的接近程度 int sum = 0; int len = nums.size(); //元素个数 if(len < 3) { return -1; } //初始化gap sum = nums[0]+nums[1]+nums[2]; gap = target > sum ? (target-sum):(sum-target); for(int begin = 0 ; begin < len-2; ++begin) { if(begin > 0 && nums[begin] == nums[begin-1]) { ++begin; continue; } int pos1 = begin+1; while(pos1 < len-1) { int pos2 = pos1+1; while(pos2 < len) { int tmpsum = nums[begin] + nums[pos1]+nums[pos2]; if(tmpsum == target) { return target; } else if(abs(tmpsum - target) < gap) { sum = tmpsum; gap = abs(tmpsum - target); } ++pos2; } ++pos1; } } return sum; }};但是我还是有一种冲动觉得排序在查找那种做法是有可能的,如果有谁知道思路请告诉我一下吧,谢谢。我自己也下去再
好好思考一下吧。
当然遍历的做法是被接受的...
0 0
- 笔试题29. LeetCode OJ (16)
- 笔试题14. LeetCode OJ (1)
- 笔试题15. LeetCode OJ (2)
- 笔试题16. LeetCode OJ (3)
- 笔试题17. LeetCode OJ (4)
- 笔试题18. LeetCode OJ (7)
- 笔试题19. LeetCode OJ (5)
- 笔试题20. LeetCode OJ (6)
- 笔试题21 . LeetCode OJ (8)
- 笔试题22. LeetCode OJ (9)
- 笔试题23. LeetCode OJ (10)
- 笔试题24. LeetCode OJ (11)
- 笔试题25. LeetCode OJ (12)
- 笔试题26. LeetCode OJ (13)
- 笔试题27. LeetCode OJ (14)
- 笔试题28. LeetCode OJ (15)
- 笔试题30. LeetCode OJ (17)
- 笔试题31. LeetCode OJ (18)
- uva 10304 - Optimal Binary Search Tree(区间dp)
- 【BZOJ1901】Zju2112 Dynamic Rankings【树状数组套主席树 / 整体二分】
- 【项目管理】优秀项目经理必知的六大沟通技巧
- Python Decorator 3: 嵌套
- 超越sublime的Visual Studio Code
- 笔试题29. LeetCode OJ (16)
- centos 64 安装mongodb
- 论dts中的of_platform_populate如何选择性加载device node为platform device
- [转] Intent 传值和 Bundle 传值的区别
- 21天精通HTML5与CSS3网页制作 第一天
- 保存页面全部图片的方法
- 集群环境下 如何导入数据文件(利用文件服务器)如何创建大数据模拟环境
- nyoj 67 三角形面积(海伦公式)
- 文章标题