offer 17 打印從1到最大的n位數

打印從1到最大的n位數

image.png

題目分析

首先得定義一個數組,而後根據輸入的n來判斷數組的長度,而後給數組元素賦值算法

題解

image.png
實際上,本題的主要考點是大數越界狀況下的打印。須要解決如下三個問題:數組

  • 表示大數的變量類型:
    不管是 short / int / long ... 任意變量類型,數字的取值範圍都是有限的。所以,大數的表示應用字符串 String 類型。
  • 生成數字的字符串集:
    image.png
  • 遞歸生成全排列
    基於分治算法的思想,先固定高位,向低位遞歸,當個位已被固定時,添加數字的字符串。例如當 n = 2n=2 時(數字範圍 1 - 991−99 ),固定十位爲 00 - 99 ,按順序依次開啓遞歸,固定個位 00 - 99 ,終止遞歸併添加數字字符串。
  • image.png

題解

image.png
沒看懂參考spa

相關文章
相關標籤/搜索