题解 | #牛牛的三元组问题#

牛牛的三元组问题

https://www.nowcoder.com/practice/72c6d735fb1144a2ba162976a4510839

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型二维数组
     */
    public int[][] findTriplets (int[] nums) {
        // write code here
         List<int[]> res = new ArrayList<>();
         Arrays.sort(nums);
         int l = nums.length;
         int rem =nums[0]-1;
        for(int i=0;i<l-2;i++){
            if(rem==nums[i]) continue;
            int t = -nums[i];
            rem = nums[i];
            int rem2 = nums[i]-1;
            for(int j=i+1;j+1<l;j++)
            {
                if(nums[j]==rem2)continue;
                rem2=nums[j];
                int tar = t-nums[j];
                int index = findNumb(nums,j+1,l-1,tar);
                if(index>0&&index<=l)
                {
                    int[] e = new int[]{nums[i],nums[j],nums[index]};
                    res.add(e);
                }
            }
        }
        int[][] resA = new int[res.size()][3];
        res.toArray(resA);
        return resA;
    }
    int findNumb(int[] arr,int s,int e,int t){
        if(s>e) return -1;
        int r = (s+e)/2;
        if(t<arr[r])return findNumb(arr,s,r-1,t);
        else if(t>arr[r]) return findNumb(arr,r+1,e,t);
        else return r;
    }
}

全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
你找工作的时候用AI吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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