本题中,二维动态数组的初始化。
本题每一行元素的数量是确定的,而不确定有几列的情况
vector s(4,0);//每一行元素,定义为一维数组
vector<vector> result;//定义一个二维数组
//选出每一个s的过程
result.push_back(s);//将每个一维数组填入二维数组中
初步敲定的程序如下:
// An highlighted block
var foo = 'bar';
class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {
vector<int> s(4,0);
vector<vector<int>> result;
if(nums.size()<4)
return result;
for(int i = 0; i<nums.size()-3; i++)
{
for(int j = i+1; j<nums.size()-2; j++)
{
for(int k = j+1; k<nums.size()-1; k++)
{
for(int l = k+1; l<nums.size(); l++)
{
if(nums[i]+nums[j]+nums[k]+nums[l] == target)
{
s[0] = nums[i];
s[1] = nums[j];
s[2] = nums[k];
s[3] = nums[l];
result.push_back(s);
}
}
}
}
}
return result;
}
};
结果并未通过,原因是包含重复的四元组。
这里只是为二维动态数组的创建提供思路。至于如何排除重复四元组,以及如何降低复杂度,请读者自行思考,闲时会再更。