题解 | #打印从1到最大的n位数# 大数问题

打印从1到最大的n位数

http://www.nowcoder.com/practice/4436c93e568c48f6b28ff436173b997f

本题其实考察的是大数问题

import java.util.*;


public class Solution {
    int[] ans;
    int count = 0;

    public int[] printNumbers(int n) {
        ans = new int[(int) Math.pow(10, n) - 1];
        // digit表示要生成的数字的位数
        for (int digit = 1; digit <= n; digit++) {
            // 为了避免数字开头出现0,先把首位first固定,first取值范围为1~9
            for (char first = '1'; first <= '9'; first++) {
                char[] num = new char[digit];
                num[0] = first;
                // 生成首位之后进入递归生成剩下的digit - 1位数,从0~9中取值
                dfs(1, num, digit);
            }
        }
        return ans;
    }

    private void dfs(int index, char[] num, int digit) {
        if (index == digit) {
            ans[count++] = Integer.parseInt(String.valueOf(num));
            return;
        }
        for (char i = '0'; i <= '9'; i++) {
            num[index] = i;
            dfs(index + 1, num, digit);
        }
    }
}
全部评论

相关推荐

01-14 12:08
门头沟学院 Java
神哥了不得:(非引流)1.既然发出来了简历,就稍微提一点点小建议,确实简历很不错了,练手项目可以换一些质量高的,工作内容,可以加上一些量化指标,比如第一条系统响应速度由多少变成多少,减少了百分之多少,第4条就很不错。2.广投,年前实习招募比较少了
点赞 评论 收藏
分享
明天不下雨了:兄弟你是我今天看到的最好看的简历(我说的是简历风格跟简历书写)把985 211再搞亮一点。投boss就说;您好,我华科(985)研二在读,本科211。对您的岗位很感兴趣,希望能获得一次投递机会。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务