剑指 Offer 17. 打印从1到最大的n位数
  1BnnW8rtw7M9 2023年11月02日 35 0


剑指 Offer 17. 打印从1到最大的n位数

dfs函数只输出n位数的情况,相比于让一个函数输出1到最大的n位数可以大大简化。

小技巧:控制循环开始的起点。

class Solution {
    List<Integer> res = new ArrayList<>();

    public int[] printNumbers(int n) {
        for(int i = 1; i <= n; i++){
            dfs(i, "");
        }
        return res.stream().mapToInt(x -> x).toArray();
    }

    void dfs(int n, String num){
        if(num.length() == n){
            res.add(Integer.valueOf(num));
            return;
        }

        int start = num.length() == 0 ? 1 : 0;
        for(int i = start; i <= 9; i++){
            dfs(n, num + i);
        }
    }
}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
1BnnW8rtw7M9
作者其他文章 更多