leetcode-18。4つの数値の合計

件名:https : //leetcode-cn.com/problems/4sum/

回答:ダブルポインタ:

public List <List <Integer >> fourSum(int [] nums、int target){

        Arrays.sort(nums);

        int n = nums.length;

        List <List <Integer >> result = new ArrayList <>();

        for(int i = 0; i <n-3; i ++){

            if(i> 0 && nums [i] == nums [i-1]){

                継続する;

            }

            for(int j = i + 1; j <n-2; j ++){

                if(j> i + 1 && nums [j] == nums [j-1]){

                    継続する;

                }

                for(int m = j + 1; m <n-1; m ++){

                    if(m> j + 1 && nums [m] == nums [m-1]){

                        継続する;

                    }

                    int right = n-1;

                    int値= target-nums [i] -nums [j] -nums [m];

                    while(m <right && nums [right]> value){

                        正しい - ;

                    }

                    if(m == right)break;

                    if(nums [right] == value){

                        List <Integer> list = new ArrayList <>();

                        list.add(nums [i]);

                        list.add(nums [j]);

                        list.add(nums [m]);

                        list.add(nums [right]);

                        result.add(list);

                    }

                }

            }

        }

        結果を返す;

    }

おすすめ

転載: blog.csdn.net/wuqiqi1992/article/details/108573198