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

考核内容:

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

运行结果

相关推荐
小明同学0116 小时前
C++后端项目:统一大模型接入 SDK(三)
开发语言·c++
Brilliantwxx16 小时前
【C++】 继承与多态(下)
开发语言·c++
C+++Python16 小时前
C++考试语法知识
开发语言·c++
爱笑的源码基地17 小时前
小微企业ERP源码,采用SpringBoot+Vue+ElementUI+UniAPP技术架构,支持二次开发及商用授权
java·源码·二次开发·erp·源代码·mrp生产计划
夏日听雨眠17 小时前
排序(选择排序 ,冒泡排序,归并排序)
数据结构·算法·排序算法
happymaker062617 小时前
Spring学习日记——DAY03(yml文件)
java·spring boot·spring
凯瑟琳.奥古斯特17 小时前
操作系统核心结构解析
java·开发语言·c++·python·职场和发展
ZC跨境爬虫17 小时前
跟着 MDN 学CSS day_2:(连接样式表与选择器的实战艺术)
java·前端·css·ui·html·媒体
敖正炀17 小时前
AQS-钩子方法
java
珠海西格电力17 小时前
零碳园区的能源成本优势具体体现在哪些方面
大数据·人工智能·算法·架构·能源