题解 | #找到满足条件的牛群组合#

找到满足条件的牛群组合

https://www.nowcoder.com/practice/8b9ba0f65fa0442b9808a24a18c6462d

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @param target int整型
     * @return int整型二维数组
     */
    public static int[][] findThreeCows (int[] nums, int target){
        // write code here
        int init =0;
        Arrays.sort(nums);
        LinkedList<int[]> linkedList = new LinkedList<>();
        while (init<nums.length-2){
            if(init>=1 && nums[init]==nums[init-1]){
                init++;
                continue;
            }
            int left = init+1;
            int right = nums.length-1;
            while (left<right){
                if(nums[left]+nums[right]==target-nums[init]){
                    linkedList.add(new int[]{nums[init],nums[left],nums[right]});
                    left++;
                    right--;
                }else if(nums[left]+nums[right]>target-nums[init]){
                    right--;
                }else if(nums[left]+nums[right]<target-nums[init]){
                    left++;
                }
            }
            init++;
        }
        int[][] arr = new int[linkedList.size()][];
        for(int i=0;i<linkedList.size();i++){
            arr[i] = linkedList.get(i);
        }
        return arr;
    }
}

本题考察的是三指针的应用,所用编程语言是java。首先对数组进行排序

三指针我可以固定第一个指针,然后另外两个指针进行移动。就变成了求两个数的和等于目标值,题目就比较简单了

全部评论

相关推荐

牛客48826091...:哥们胸肌挺好看
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务