8.31 PDD笔试1-3AC答案

package pdd;
//第一题双优先队列,头部比较
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Scanner;

public class Main1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = scanner.nextInt();

        for (int j = 0; j < T; j++) {
            int n = scanner.nextInt();
            int m = scanner.nextInt();
            int k = scanner.nextInt();
            PriorityQueue<Integer> queue1 = new PriorityQueue<>();
            PriorityQueue<Integer> queue2 = new PriorityQueue<>();

            for (int i = 0; i < n; i++) {
                queue1.add(scanner.nextInt());
            }
            for (int i = 0; i < m; i++) {
                queue2.add(scanner.nextInt());
            }

            int ans = 0;
            while (!queue1.isEmpty() && !queue2.isEmpty()){
                if(Math.abs(queue1.peek() - queue2.peek()) <= k){
                    queue1.remove();
                    queue2.remove();
                    ans++;
                }else if(queue1.peek() < queue2.peek()){
                    queue1.remove();
                }else {
                    queue2.remove();
                }
            }
            System.out.println(ans);
        }

    }
}

package pdd;
//转化为最小形态比较
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = Integer.parseInt(scanner.nextLine());
        String[] strs = new String[N];
        for (int i = 0; i < N; i++) {
            strs[i] = scanner.nextLine();
        }

        Map<String,String> map = new HashMap<>();
        Map<String,Integer> indexMap = new HashMap<>();
        for (int i = 0; i < N; i++) {
            map.put(strs[i],toMinString(strs[i]));
            indexMap.put(strs[i],i);
        }

        Arrays.sort(strs,(o1, o2) -> {
            String min1 = map.get(o1);
            String min2 = map.get(o2);
            if(min1.equals(min2)){
                return indexMap.get(o1) - indexMap.get(o2);
            }else {
                return min1.compareTo(min2);
            }
        });

        for (String str : strs) {
            System.out.println(str);
        }


    }

    private static String toMinString(String s){
        char[] chars = s.toCharArray();
        int m = (s.length()-1)/2;
        for (int i = 0; i <= m; i++) {
            if(chars[i] > chars[s.length()-1-i]){
                char temp = chars[i];
                chars[i] = chars[s.length()-1-i];
                chars[s.length()-1-i] = temp;
            }
        }
        return String.valueOf(chars);
    }
}
package pdd;
//先找组成最大的正方形,再依次往右边界,下边界添加
import java.util.Scanner;

public class Main3 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T  = scanner.nextInt();
        for (int i = 0; i < T; i++) {
            long n = scanner.nextLong();
            long L = search(n);
            long remain = n - 2*L*(L+1);
            if(remain <= 2L){
                System.out.println(L*L);
            }else if(remain <= 2*L +1){
                System.out.println(L*L + (remain-1)/2);
            }else {
                System.out.println(L*L + L+(remain-2*L-2)/2);
            }
        }
    }

    private static long search(long n) {
        long l = 0,r= (long) Math.sqrt(n/2);
        while (l<=r){
            long m = l + (r-l)/2;
            if( n >= 2*m*(m+1)){
                l = m+1;
            }else {
                r = m -1;
            }
        }
        return r;
    }
}


#拼多多##笔经#
全部评论
第四题样例是不是有问题啊,我自己试没问题但是一个样例也过不了
点赞 回复 分享
发布于 2021-08-31 21:08

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
评论
2
3
分享

创作者周榜

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