字节跳动青训营——入营考核解答(持续更新中~~~)

考核内容:

在指定的题库中自主选择不少于 15 道算法题并完成解题,其中题目难度分配如下:

  • 简单题不少于 10 道
  • 中等题不少于 4 道
  • 困难题不少于 1 道

解答代码

16.DNA 序列还原 (简单)

代码实现:

java 复制代码
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][j - 1] + 1, // 插入操作
                                    dp[i - 1][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);
    }
}

运行结果

相关推荐
大猫和小黄几秒前
Java开发过程中的各种ID生成策略
java·开发语言·id
EXtreme35几秒前
【数据结构】彻底搞懂二叉树:四种遍历逻辑、经典OJ题与递归性能全解析
c语言·数据结构·算法·二叉树·递归
炽烈小老头1 分钟前
【每天学习一点算法 2026/01/09】3的幂
学习·算法
繁依Fanyi2 分钟前
从初识到实战 | OpenTeleDB 安装迁移使用指南
开发语言·数据库·python
小罗和阿泽2 分钟前
java [多线程基础 二】
java·开发语言·jvm
小罗和阿泽2 分钟前
java 【多线程基础 一】线程概念
java·开发语言·jvm
悟空码字3 分钟前
SpringBoot整合Zookeeper,实现分布式集群部署
java·zookeeper·springboot·编程技术·后端开发
渡我白衣4 分钟前
计算机组成原理(14):算术逻辑单元ALU
大数据·人工智能·算法·机器学习·计组·数电·alu
柳鲲鹏5 分钟前
OpenCV视频实时跟踪目标,多种算法,python版
opencv·算法·音视频
朱峥嵘(朱髯)5 分钟前
数据库如何根据估计 NDV,以及通过分区 NDV 推导全局 NDV
数据库·算法