leetcode-18-4sum
2016-04-28 17:10
399 查看
class Solution { public: vector<vector<int> > fourSum(vector<int> &num, int target) { vector<vector<int> > ret; int len = num.size(); if (len <= 3) return ret; sort(num.begin(), num.end()); for (int i = 0; i <= len - 4; i++) { for (int m = i + 1; m <= len - 3; m++) { int j = m + 1; int k = len - 1; while (j < k) { if (num[i] + num[m] + num[j] + num[k] < target) { ++j; } else if (num[i] + num[m] + num[j] + num[k] > target) { --k; } else { ret.push_back({ num[i], num[m], num[j], num[k] }); ++j; --k; while (j < k && num[j] == num[j - 1]) ++j; while (j < k && num[k] == num[k + 1]) --k; } } while (m < len && num[m] == num[m + 1]) ++m; } while (i < len && num[i] == num[i + 1]) ++i; } return ret; } }; 和3sum等思路一样。o(n*n*n)。
相关文章推荐
- GradleUserGuide中文版 14)Tasks 15)文件操作
- HBase数据模型(1)
- enable_share_from_this 模板类使用和完全解析
- u盘在linux系统上只读的处理方法
- 23转化成二进制
- 230转化成二进制
- n-2 乘法
- Unity和Android互相调用
- laravel 笔记
- 一个简单的Java开发WebService实例
- Node.js + MongoDB + AngularJS - 6 访问文件系统-1
- ntp
- Java Servlet
- 云服务器环境搭建
- jquery tmpl 详解
- 个人工作总结10
- 内部排序 ——第3波——————【快速排序】
- 配置文件中的“制表符”引发线上的服务问题
- yum update kernel后的操作
- 多线程篇-RunLoop