秋招耐挂王 level
获赞
172
粉丝
27
关注
1
看过 TA
1689
武汉理工大学
2025
Java
IP属地:江西
JAVA低手!
私信
关注
2024-10-25 13:58
武汉理工大学 Java
0 点赞 评论 收藏
分享
2024-10-18 11:02
武汉理工大学 Java
0 点赞 评论 收藏
分享
2024-09-22 12:24
武汉理工大学 Java
起床晚了10:20才发现有笔试第一题15分钟ak第二题做了一个半小时,一开始的做法时间复杂度爆了,只过24%,改进的代码如下,样例能够全过,自己也测试了别的数据,为什么实际用例送我大0蛋啊真的红温了package pdd_2;import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main_1 {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        int group = in.nextInt();        int[] res = new int[group];        for (int i = 0; i < group; i++) {            int count = in.nextInt();            int[] nums = new int[count];            double avg = 0;            for (int j = 0; j < count; j++) {                nums[j] = in.nextInt();                avg = avg + (double) nums[j];            }            avg = avg / count;            Arrays.sort(nums);            Set<Set<Integer>> list = new HashSet<>();            Set<Set<Integer>> have = new HashSet<>();            getRes(nums, 0, nums.length - 1, avg, list, have);            res[i] = list.size();        }        for (int i = 0; i < res.length; i++) {            System.out.println(res[i]);        }    }    public static void getRes(int[] nums, int indexStart, int indexEnd, double avg, Set<Set<Integer>> list, Set<Set<Integer>> have) {        if (indexStart == nums.length || indexEnd == -1 || indexStart >= indexEnd) {            return;        }        Set<Integer> set = new HashSet<>();        set.add(indexStart);        set.add(indexEnd);        if (have.contains(set)) {            return;        }        have.add(set);        if (nums[indexStart] + nums[indexEnd] == avg * 2) {            list.add(set);            int x = 1;            while (indexStart + x < indexEnd && nums[indexStart + x] == nums[indexStart]) {                x++;            }            int y = 1;            while (indexStart < indexEnd - y && nums[indexEnd - y] == nums[indexEnd]) {                y++;            }            for (int i = 1; i <= x; i++) {                for (int j = 1; j <= y; j++) {                    Set<Integer> s = new HashSet<>();                    s.add(indexStart + i);                    s.add(indexEnd - j);                    if (s.size() == 2) {                        list.add(s);                    }                }            }            getRes(nums, indexStart + x, indexEnd - y, avg, list, have);        }        if (nums[indexStart] + nums[indexEnd] > avg * 2) {            getRes(nums, indexStart, indexEnd - 1, avg, list, have);        } else {            getRes(nums, indexStart + 1, indexEnd, avg, list, have);        }    }}
投递拼多多集团-PDD等公司10个岗位
0 点赞 评论 收藏
分享
2024-09-14 19:43
武汉理工大学 Java
1.奇妙的约分时间限制: 3000MS内存限制: 786432KB题目描述:有一种十分奇妙的约分:并非是分子分母同时除以-一个数,而是上下同时删除相同的数字。例如,114514/1919810 -> 14514/919810 -> 1454/91980这样。当然我们知道这样约分后的结果可能和正常约分的结果并不一致,因此我们才称这一过程为奇妙的约分。在奇妙的约分过程中,-一个数可能会出现前导0。此时,我们会将前导0保留,只要保证数字没有被完全删除,以及分母不是全为0即可。现在,给出两个分数,你需要判断第二个分数是否能够由第一个分数经过上述“奇妙的约分”得到。2.传染病防控时间限制: 3000MS内存限制: 655360KB题目描述:R市正在进行传染病防控。R市总共有n个人。具体的,每个人有一个位置(x;y),现在已知有一个是高风险人员,但还未追踪到具体是谁。同时我们定义一个安全距离k,如果某个人和这个高风险人员的距离不超过k,那么这个人也将被列为高风险人员。为了减少防控对市民生活的影响,工作人员希望知道所有可能情况下最多的高风险人员数量。两个人(x1 y1)(X2.Y2)的距离定义为|x1-x2|+ly1-y2l输入描述一行两个整数n,k。接下来一行n个整数分别表示...X..接下来-行n个整数分别表示y ...n.1<=n<= 1000,1<=k,x,y<= 1000。一题拿了91一题73
查看2道真题和解析 投递360集团等公司10个岗位
0 点赞 评论 收藏
分享
2024-04-16 14:04
武汉理工大学 Java
YoungZ英勇:这我还活集贸,跳了 ━━━━━┒ ┓┏┓┏┓ I ┛┗┛┗┛┃\🤡/ ┓┏┓┏┓┃ / ┛┗┛┗┛┃ノ) ┓┏┓┏┓┃ ┛┗┛┗┛┃ ┓┏┓┏┓┃ ┛┗┛┗┛┃ ┓┏┓┏┓┃ ┃┃┃┃┃┃ ┻┻┻┻┻┻🌳🌳🌳🌳🌳🌳
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务