乐趣区

关于java:offer-17-打印从1到最大的n位数

打印从 1 到最大的 n 位数

题目剖析

首先得定义一个数组,而后依据输出的 n 来判断数组的长度, 而后给数组元素赋值

题解


实际上,本题的次要考点是大数越界状况下的打印。须要解决以下三个问题:

  • 示意大数的变量类型:
    无论是 short / int / long … 任意变量类型,数字的取值范畴都是无限的。因而,大数的示意利用字符串 String 类型。
  • 生成数字的字符串集:
  • 递归生成全排列
    基于分治算法的思维,先固定高位,向低位递归,当个位已被固定时,增加数字的字符串。例如当 n = 2n=2 时(数字范畴 1 – 991−99),固定十位为 00 – 99,按程序顺次开启递归,固定个位 00 – 99,终止递归并增加数字字符串。

题解


没看懂参考

退出移动版