18. 四数之和

if(nums[k] > target && nums[0] >= 0){

break;

}

java 复制代码
class Solution {
    public List<List<Integer>> fourSum(int[] nums, int target) {
        List<List<Integer>> res = new ArrayList<>();
        int len = nums.length;
        Arrays.sort(nums);
        for(int k = 0;k < len;k++){
            //三数之和中的>0就直接跳过是有条件的
           

            if(k > 0 && nums[k] == nums[k-1]){
                continue;
            }
            for(int i = k+1;i<len;i++){
                if(i>k+1 && nums[i] == nums[i-1]){
                    continue;
                }
                int left = i+1;
                int right = len - 1;
                while(left < right){
                    long sum = nums[k] + nums[i] + nums[left] + nums[right];
                    if(sum > target){
                        right--;
                    }else if(sum < target){
                        left++;
                    }else{
                        res.add(Arrays.asList(nums[k],nums[i],nums[left],nums[right]));
                        while(right > left && nums[right] == nums[right - 1]){
                            right--;
                        }
                        while(right > left && nums[left] == nums[left + 1]){
                            left++;
                        }
                        left++;
                        right--;
                    }
                }
            }
        }
        return res;
    }
}
相关推荐
西野.xuan4 小时前
内存布局(堆vs栈)一篇详解!!
java·数据结构·算法
2401_831824964 小时前
高性能压缩库实现
开发语言·c++·算法
2401_874732534 小时前
C++中的策略模式进阶
开发语言·c++·算法
大熊背4 小时前
ISP离线模式应用(二)-如何利用 ISP 离线模式 加速 3DNR 收敛
linux·算法·rtos·isp pipeline·3dnr
zhangfeng11334 小时前
`transformers` 的 `per_device_train_batch_size` 不支持小于 1 的浮点数值,llamafactory 支持
人工智能·算法·batch
zl_vslam4 小时前
SLAM中的非线性优-3D图优化之绝对位姿SE3约束四元数形式(十九)
人工智能·算法·计算机视觉·3d
j_xxx404_5 小时前
蓝桥杯基础--时间复杂度
数据结构·c++·算法·蓝桥杯·排序算法
2501_945423545 小时前
C++跨平台开发实战
开发语言·c++·算法
Oueii5 小时前
分布式系统监控工具
开发语言·c++·算法
xushichao19895 小时前
C++中的中介者模式
开发语言·c++·算法