有无佬看看我这为啥错了,测试用例都没问题,但是通过率为0,用的三数之和双指针法加一个set判断

···import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int T=in.nextInt();
        while(T-->0){
            boolean found=false;
            int n=in.nextInt();
            int Dn=in.nextInt();
            Set<Integer> Dset=new HashSet<>();//用来快速判断是否在D中
            for(int i=0;i<Dn;i++){
                Dset.add(in.nextInt());
            }
            for(int a=1;a<=24;a++){
                int b=a+1;
                int c=26;
                if(a>=n) break;
                while(b<c){
                    if(a+b+c>n){
                        c--;
                    }else if(a+b+c<n){
                        b++;
                    }else{
                        //否则找到了
                        if(Dset.contains(b-a)&&Dset.contains(c-b)){
                            char a1=(char)('a'+(a-1));
                            char b1=(char)('a'+(b-1));
                            char c1=(char)('a'+(c-1));
                            System.out.print(a1);
                            System.out.print(b1);
                            System.out.println(c1);
                            found=true;
                            break;
                        }
                        //否则是找到了但是此时的a下面的b和c并不满足
                        b++;
                        c--;
                    }
                }
            }
            if(found==false) System.out.println("NO");
        }
    }
}
全部评论
不会是因为第二层循环没break吧,多输出了答案?
点赞 回复 分享
发布于 昨天 11:16 四川
没绷住啊,搞了一小时没调对
点赞 回复 分享
发布于 昨天 11:11 四川

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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