当前位置: 首页 > article >正文

[豆包MarCode AI 刷题] 算法题解 Java 青训入营考核 五题打卡第一天

目录

8 易 找出整型数组中占比超过一半的数

20 易 比赛配对问题

29 易 小D的 'acb' 变换问题​编辑

25 易 DNA序列编辑距离

1 易 找单独的数


欢迎你报名豆包MarsCode 青训营-寒假专场!非常开心你加入这个充满活力和创新的大家庭。在这里,你将遇到一群和你一样对技术充满热情的小伙伴,一起学习、成长、分享~我们准备了丰富的课程内容,还有各种实战项目等你来挑战,相信你一定会收获满满

青训营是字节跳动技术团队发起的技术系列培训 & 人才选拔项目;面向高校在校生,旨在培养优秀且具有职业竞争力的开发工程师。
本期青训营由豆包MarsCode 团队联合掘金社区主办,课程包含前端、后端和大数据方向,在这个飞速发展的 AI 时代,我们将和豆包MarsCode 一起深入探索,在青训营的技术氛围中,学习技术,高效写码~

8 易 找出整型数组中占比超过一半的数

import java.util.*;

public class Main {
    public static int solution(int[] array) {
        // Edit your code here

        Map<Integer,Integer>map=new HashMap<>();
        for(int i=0;i<array.length;i++){
            map.put(array[i],map.getOrDefault(array[i], 0)+1);
            if(map.getOrDefault(array[i], 0)>array.length/2){
                return array[i];
            }
        }

        return 0;
    }

    public static void main(String[] args) {
        // Add your test cases here

        System.out.println(solution(new int[]{1, 3, 8, 2, 3, 1, 3, 3, 3}) == 3);
    }
}

20 易 比赛配对问题

class Main {

    static int cnt=0;

    public static int solution(int n) {
        rec(n);
        int ans=cnt;
        cnt=0;
        return ans;
    }

    public static int rec(int n){
        if(n==1){
            return 0;
        }
        if(n%2==0){
            // 偶数
            cnt+=(n/2);
            rec(n/2);
        }else{
            // 奇数
            cnt+=( (n-1)/2 ); 
            rec( (n-1)/2+1 );
        }
        return 0;
    }

    public static void main(String[] args) {
        // System.out.println(solution(7) == 6);
        // System.out.println(solution(14) == 13);
        // System.out.println(solution(1) == 0);
        System.out.println(solution(7) );
        System.out.println(solution(14) );
        System.out.println(solution(1) );
    }
}


29 易 小D的 'acb' 变换问题

public class Main {

    public static String solution(String s, int k) {
        String str=s;
        while(k-->0){
            StringBuilder sb = new StringBuilder("");
            for(int i=0;i<str.length();i++){
                if(str.charAt(i)=='a'){
                    sb.append("bc");
                }
                if(str.charAt(i)=='b'){
                    sb.append("ca");
                }
                if(str.charAt(i)=='c'){
                    sb.append("ab");
                }
            }
            str=sb.toString();
        }        
        return str;
    }

    public static void main(String[] args) {
        System.out.println(solution("abc", 2).equals("caababbcbcca"));
        System.out.println(solution("abca", 3).equals("abbcbccabccacaabcaababbcabbcbcca"));
        System.out.println(solution("cba", 1).equals("abcabc"));
    }
}

25 易 DNA序列编辑距离

public class Main {

    public static int solution(String dna1, String dna2) {
        int m = dna1.length();
        int n = dna2.length();
        =
        int[][] dp = new int[m + 1][n + 1];
        
        for (int i = 0; i <= m; i++) {
            dp[i][0] = i;
        }
        for (int j = 0; j <= n; j++) {
            dp[0][j] = j; 
        }
        
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                if (dna1.charAt(i - 1) == dna2.charAt(j - 1)) {
                    dp[i][j] = dp[i - 1][j - 1]; 
                } else {
                    dp[i][j] = Math.min(dp[i - 1][j - 1], Math.min(dp[i - 1][j], dp[i][j - 1])) + 1;
                  
                }
            }
        }
        
        return dp[m][n];
    }

    public static void main(String[] args) {
        //  You can add more test cases here
        System.out.println(solution("AGCTTAGC", "AGCTAGCT") == 2);
        System.out.println(solution("AGCCGAGC", "GCTAGCT") == 4);
    }
}

1 易 找单独的数

import java.util.*;

public class Main {
    public static int solution(int[] cards) {
        // Edit your code here
        int arr[]=new int[1001];
        
        for(int i:cards){
            arr[i]++;
        }
        for(int i=1;i<arr.length;i++){
            if(arr[i]==1){
                System.out.print(i);
                return i;
            }
        }
        return 1;
    }

    public static void main(String[] args) {
        // Add your test cases here
        
        System.out.println(solution(new int[]{1, 1, 2, 2, 3, 3, 4, 5, 5}) == 4);
        System.out.println(solution(new int[]{0, 1, 0, 1, 2}) == 2);
    }
}

http://www.kler.cn/a/474291.html

相关文章:

  • Perturbed-Attention Guidance(PAG) 笔记
  • 【Ubuntu】 Ubuntu22.04搭建NFS服务
  • 使用强化学习训练神经网络玩俄罗斯方块
  • Improving Language Understanding by Generative Pre-Training GPT-1详细讲解
  • Mysql--基础篇--事务(ACID特征及实现原理,事务管理模式,隔离级别,并发问题,锁机制,行级锁,表级锁,意向锁,共享锁,排他锁,死锁,MVCC)
  • Ubuntu下的小bug
  • git commit冲突,需输入提交信息合并提交
  • 服务器端QTcpSocket如何判断客户端是否在线
  • linux MySQL Percona Toolkit 使用指南
  • 【Pandas】pandas Series truediv
  • 系统架构设计师考点—数据库技术基础
  • pytest 参数介绍
  • CSS 变量:让你的样式更灵活、更易维护
  • 05容器篇(D2_集合 - D4_遍历相关)
  • buildroot ffmpeg 及 PJSIP安装使用详解
  • 前端通过后端返回的数据流下载文件
  • ChatGPT 数据分析与处理使用详解
  • ffmpeg视频抽帧和合成
  • 【VS2022】(C#,WinForm)上位机打包为安装包
  • 25/1/5 算法笔记<强化学习> MPC,交叉熵法,PETS算法
  • 实时数仓:Flink 任务实现、Hudi 表设计细节或治理工具的具体配置
  • DC/AC并网逆变器模型与仿真MATLAB
  • 计算机网络——网络层—IP数据报与分片
  • 高光谱相机的特点
  • JDK 17 模块化系统:构建可维护大型项目的基石
  • 关机重启后,GitLab服务异常