小米最后一次笔试JAVA

算法两题:
第一题,leetcode 上有个合并区间的变种
第二题,最小编辑距离
很简单,就是第一题这个输入输出,真是b了🐶了,要不是因为这个输入输出,我今晚还能写b站的笔试,又要延期了

贴个代码吧:
1
public int getSumTime(List<int[]> times){
        Collections.sort(times, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[0] - o2[0];
            }
        });
        List<int[]> list = new LinkedList<>();
        int start = times.get(0)[0];
        int end = times.get(0)[1];
        for (int i = 1; i < times.size(); i++){
            if(end < times.get(i)[0]){
                list.add(new int[]{start, end});
                start = times.get(i)[0];
                end = times.get(i)[1];
            }else{
                end = Math.max(end, times.get(i)[1]);
            }
        }
        list.add(new int[]{start, end});
        int sum = 0;
        for (int i = 0; i < list.size(); i++){
            sum += list.get(i)[1] - list.get(i)[0];
        }
        return sum;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        List<int[]> times = new LinkedList<>();
        while (sc.hasNextLine()){
            String input = sc.nextLine();
            if(input.equals("")){
                break;
            }
            String[] numsStr = input.split(" ");
            int[] nums = {Integer.parseInt(numsStr[0]), Integer.parseInt(numsStr[1])};
            times.add(nums);
        }
        Main main = new Main();
        System.out.println(main.getSumTime(times));
    }
2
public int getAns(String str, String target){
        char[] chars = str.toCharArray();
        char[] tar = target.toCharArray();
        int[][] dp = new int[chars.length + 1][tar.length + 1];
        dp[0][0] = 0;
        for (int i = 1; i <= tar.length; i++){
            dp[0][i] = dp[0][i-1] + 1;
        }
        for (int i = 1; i <= chars.length; i++){
            dp[i][0] = dp[i-1][0] + 1;
        }
        for (int i = 1; i <= chars.length; i++){
            for (int j = 1; j <= tar.length; j++){
                if(chars[i - 1] != tar[j - 1]){
                    dp[i][j] = Math.min(dp[i][j - 1] + 1, Math.min(dp[i-1][j] + 1, dp[i-1][j-1] + 1));
                }else {
                    dp[i][j] = dp[i-1][j-1];
                }
            }
        }
        return dp[chars.length][tar.length];
    }



#小米笔试##小米2023秋招笔试心得体会#
全部评论
有没有第一题是树的序列化和反序列化的?
4 回复 分享
发布于 2022-09-20 20:12 广东
为什么java岗位考了这么多C++基础
3 回复 分享
发布于 2022-09-20 20:20 江苏
第一题输入太m*** 了
2 回复 分享
发布于 2022-09-20 20:00 四川
java在自己编译器通过一点问题没有,怎么在上面就不行
2 回复 分享
发布于 2022-09-20 20:02 黑龙江
算法第一题的输入输出日了🐶了
1 回复 分享
发布于 2022-09-20 20:07 陕西
第一题输入硬是没写出来
1 回复 分享
发布于 2022-09-20 20:13 湖南
请问下这个输入怎么写?
点赞 回复 分享
发布于 2022-09-20 19:51 四川
为啥第一题死活只过50%
点赞 回复 分享
发布于 2022-09-20 19:54 福建
靠为啥输入这么***
点赞 回复 分享
发布于 2022-09-20 20:00 四川
好兄弟第二题最小编辑距离为什么只能过63%,有同学知道为什么嘛?我用的是二维数组的动态规划呀
点赞 回复 分享
发布于 2022-09-20 20:03 北京
第二天有是利口原题
点赞 回复 分享
发布于 2022-09-20 20:06 四川
点赞 回复 分享
发布于 2022-09-20 20:11 北京
第二题编辑距离用go写,死活25%, 同样的代码切换到 c++, 直接ac,也不知道咋回事。
点赞 回复 分享
发布于 2022-09-20 20:12 上海
有无第一题AC100的贴个代码,我想不懂为啥自己是0,和leet完全一样的解法
点赞 回复 分享
发布于 2022-09-20 20:16 北京
求问为啥0
点赞 回复 分享
发布于 2022-09-20 20:22 北京
+1+1+1,这个输入输出烦死了
点赞 回复 分享
发布于 2022-09-21 15:55 湖北
这是今年小米秋招最后一场笔试了吗兄弟
点赞 回复 分享
发布于 2022-09-21 15:59 上海
第一题,结束输入是ctrl+d吧
点赞 回复 分享
发布于 2022-09-22 13:05 北京
估计java已经没有hc了,我九月初ak了,这几天进人才库了,也可能是双非被筛了😅
点赞 回复 分享
发布于 2022-09-29 12:00 广东

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
评论
2
15
分享
牛客网
牛客企业服务