4Sum

来源:互联网 发布:用java写雷电x 小游戏 编辑:程序博客网 时间:2024/06/05 00:25


public class Solution {    public List<List<Integer>> fourSum(int[] nums, int target) {        List<List<Integer>> result = new ArrayList<List<Integer>>();        if (nums == null || nums.length == 0) {            return result;        }        Arrays.sort(nums);        HashSet<List<Integer>> set = new HashSet<List<Integer>>();                for (int i = 0; i < nums.length; i++) {            for (int j = i + 1; j < nums.length; j++) {                int left = j + 1;                int right = nums.length - 1;                while (left < right) {                    int sum = nums[i] + nums[j] + nums[left] + nums[right];                    if (sum > target) {                        right--;                    } else if (sum < target) {                        left++;                    } else if (sum == target) {                        List<Integer> temp = new ArrayList<Integer>();                        temp.add(nums[i]);                        temp.add(nums[j]);                        temp.add(nums[left]);                        temp.add(nums[right]);                        if (!set.contains(temp)) {                            set.add(temp);                            result.add(temp);                        }                        left++;                        right--;                    }                }            }        }        return result;    }}


0 0
原创粉丝点击