字节机试面经

No.1

579万平方公里土地,分给岛上的魔法师,魔法师存在师徒关系,1 是2的师傅,1和2就是一个部落,可以循环1 2, 2 3, 3 1。

最终判断岛上有多少个部落,每个部落占多少土地(按魔法师数量分)

import java.lang.reflect.Array;
import java.util.*;

public class Main {
    static int[] parent;
    static int[] dep;
    static int[] nums;
    public static int find(int a) {
        while(parent[a] != a) a = parent[a];
        return a;
    }
    public static void union(int a, int b) {
        int p_a = find(a);
        int p_b = find(b);
        if(p_a != p_b) {
            if (dep[p_a] > dep[p_b]) {
                parent[p_b] = p_a;
                nums[p_a] += nums[p_b];
            } else {
                parent[p_a] = p_b;
                dep[p_b]++;
                nums[p_b] += nums[p_a];
            }
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        parent = new int[n + 1];
        dep = new int[n + 1];
        nums = new int[n + 1];
        Arrays.fill(dep, 1);
        Arrays.fill(nums, 1);
        for(int i = 0; i < n + 1; i++) {
            parent[i] = i;
        }
        int m =sc.nextInt();
        for(int i = 0; i < m; i++) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            union(a, b);
        }
        int cnt = 0;
        List<Integer> list = new ArrayList<>();
        for(int i = 1; i <= n; i++) {
            if(parent[i] == i) {
                list.add(579 * nums[i] / n);
                cnt++;
            }
        }
        System.out.println(cnt);
        list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });
        for(int t: list)
            System.out.print(t + " ");
        System.out.println();
    }
}

No.2力扣题,A了75

https://leetcode.cn/problems/last-stone-weight-ii/

No.3 n个老鼠有坐标,两个洞口A,B,k个老鼠可以进A洞,n-k个老鼠可以进B洞,求最小的进洞总距离。

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
        double[] pa = new double[2];
        pa[0] = sc.nextDouble();
        pa[1] = sc.nextDouble();
        double[] pb = new double[2];
        pb[0] = sc.nextDouble();
        pb[1] = sc.nextDouble();
        double[][] dis = new double[n][3];
        for(int i = 0; i < n; i++) {
            double x = sc.nextDouble();
            double y = sc.nextDouble();
            dis[i][0] = getDis(x, y, pa[0], pa[1]);
            dis[i][1] = getDis(x, y, pb[0], pb[1]);
            dis[i][2] = Math.abs(dis[i][0] - dis[i][1]);
        }
        Arrays.sort(dis, new Comparator<double[]>() {
            @Override
            public int compare(double[] o1, double[] o2) {
                return o1[2] - o2[2] < 0? 1: -1;
            }
        });
        double sum = 0;
        int cnt_a = 0;
        int cnt_b = 0;
        for(int i = 0; i < n; i++) {
            if(cnt_a == k) {
                sum += dis[i][1];
                continue;
            }
            if(cnt_b == n - k) {
                sum += dis[i][0];
                continue;
            }
            if(dis[i][0] > dis[i][1]) {
                cnt_b++;
                sum += dis[i][1];
            } else {
                cnt_a++;
                sum += dis[i][0];
            }
        }
        System.out.println(sum);
    }

    private static double getDis(double x, double y, double v, double v1) {
        double lev = Math.abs(x - v);
        double vet = Math.abs(y - v1);
        return Math.sqrt(lev * lev + vet * vet);
    }

}

No.4真不会了,题都忘了。。。

#你觉得今年春招回暖了吗#
全部评论

相关推荐

点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
05-01 22:41
中南大学 Java
点赞 评论 收藏
分享
06-04 18:37
门头沟学院 Java
勇敢的ssr求对象:前面看的有点奔溃,看到只有你是真玩啊,忍不住笑出了声😂
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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