LeetCode第18题:四数之和
- 题目:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。
- 解法一:罗里吧嗦写了一堆,还是不对,很复杂,显然方法不好,没有改对就放弃了。。
class Solution {
public List<List<Integer>> fourSum(int[] nums, int target) {
List<List<Integer>> ans=new ArrayList();
int len=nums.length;
if(len<4 || nums==null) return ans;
Arrays.sort(nums);
for(int i=0;i<=len-4;i++){
if(nums[i]>target) return ans;
int j=i+1;
int k=j+1;
int m=k+1;
boolean Falg=true;
while(m<len && Falg){
int sum=nums[i]+nums[j]+nums[k]+nums[m];
if(sum>target) break;
else if(sum<target){
if(m==len-1){
if(k==len-2){
if(j==len-3){
Falg=false;
}
j++;
k=j+1;
m=k+1;
}
k++;
m=k+1;
}
m++;