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

考核内容:

在指定的题库中自主选择不少于 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);
    }
}

运行结果

相关推荐
逻极2 分钟前
Rust数据类型(下):复合类型详解
开发语言·后端·rust
星释3 分钟前
Rust 练习册 12:所有权系统
开发语言·后端·rust
墨雪不会编程7 分钟前
数据结构—排序算法篇二
数据结构·算法·排序算法
星释9 分钟前
Rust 练习册 16:Trait 作为返回类型
java·网络·rust
2301_7965125211 分钟前
Rust编程学习 - 如何理解Rust 语言提供了所有权、默认move 语义、借用、生命周期、内部可变性
java·学习·rust
tianyuanwo11 分钟前
Rust开发完全指南:从入门到与Python高效融合
开发语言·python·rust
乐悠小码15 分钟前
Java设计模式精讲---03建造者模式
java·设计模式·建造者模式
一个人的幽默22 分钟前
聊一下java获取客户的ip
java
披着羊皮不是狼25 分钟前
Spring Boot——从零开始写一个接口:项目构建 + 分层实战
java·spring boot·后端·分层
ShineWinsu30 分钟前
对于数据结构:堆的超详细保姆级解析—上
数据结构·c++·算法·计算机·二叉树·顺序表·