ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeepSeek LeetCode 38. 外观数列 Java实现

DeepSeek    LeetCode 38. 外观数列 Java实现 以下是 LeetCode 38 题「外观数列」的 Java 实现。classSolution{publicStringcountAndSay(intn){Strings1;// 从第 2 项开始迭代生成直到第 n 项for(inti1;in;i){snext(s);}returns;}// 根据当前字符串生成下一项privateStringnext(Strings){StringBuildersbnewStringBuilder();inti0;while(is.length()){charcs.charAt(i);intcount0;// 统计连续相同字符的个数while(is.length()s.charAt(i)c){i;count;}sb.append(count).append(c);}returnsb.toString();}}思路说明· 外观数列的定义是从 “1” 开始每一项都是对前一项的描述。· 例如· 第 1 项1· 第 2 项读作 “一个 1”即 11· 第 3 项读作 “两个 1”即 21· 第 4 项读作 “一个 2一个 1”即 1211· 实现时只需从 “1” 开始循环 n-1 次每次调用 next 方法生成下一项。· next 方法遍历当前字符串使用双指针统计连续相同字符的个数然后拼接成 个数 字符 的形式。复杂度分析· 时间复杂度O(m * n)其中 m 是生成的字符串的最大长度n 是迭代次数。由于字符串长度随 n 增长较快但 n 最大为 30实际运行时间可以接受。· 空间复杂度O(m)用于存储当前字符串和 StringBuilder 生成的中间结果。
返回列表