【剑指offer】面试题 17. 打印从 1 到最大的 n 位数
2024-08-30 07:25:29
面试题 17. 打印从 1 到最大的 n 位数
题目描述
题目:输入数字 n,按顺序打印出从 1 最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数即 999。
解答过程
样例
给出 n = 1, 返回[1,2,3,4,5,6,7,8,9]
.
给出 n = 2, 返回[1,2,3,4,5,6,7,8,9,10,11,...,99]
.
挑战
用递归完成,而非循环的方式。
Java 实现
public class Solution {
/**
* @param n: An integer
* @return: An array storing 1 to the largest number with n digits.
* 参考:https://blog.csdn.net/wutingyehe/article/details/51191520
*/
public List<Integer> numbersByRecursion(int n) {
// write your code here
if(n<=0){
return new ArrayList<Integer>();
}else if(n==1){
List<Integer> result = new ArrayList<Integer>();
for(int i=1;i<=9;i++){
result.add(i);
}
return result;
}else{
List<Integer> list = numbersByRecursion(n-1);
List<Integer> result = new ArrayList<Integer>(list);
for(int i=1;i<=9;i++){
int topdigit = (int)Math.pow(10, n-1)*i;
result.add(topdigit);
for(int j=1;j<=list.size();j++){
result.add(topdigit+j);
}
}
return result;
}
}
}
最新文章
- FFT
- JavaScript高级程序设计学习笔记--BOM
- ubuntu 15.04 联网提示:wifi已通过硬件开关禁用
- ${fn:length(worklicenseList)} #表示不在struts堆栈里,没有#表示从struts堆栈里取
- php 获取某个月的周次信息
- Qt学习经验之quit()、exit()、close()《转载》
- DataGirdView 设置单元格居中
- [图形学] Chp14 GLU曲面裁剪函数程序示例及样条表示遗留问题
- 我的";Hello World!";之旅
- spring cloud使用Feign做消费端时的eureka.client.registerWithEureka/eureka.client.fetchRegistry是否配置的问题
- bootstrap+Ajax+SSM(maven搭建)实现增删改查
- 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容
- 从头開始学 RecyclerView(三) 封装简化
- linux shell 脚本攻略学习1
- Netty源码分析之NioEventLoop(一)—NioEventLoop的创建
- Python初体验(一)—【配置环境变量】【变量】【input】【条件语句】【循环语句】
- 循环语句(循环for与while等)
- PlistBuddy简单使用
- 题解【CF277E Binary Tree on Plane】
- redis入门笔记
热门文章
- [solr]solr的安装
- AngularJs 中的CheckBox前后台交互
- Spring @Async的异常处理
- 问题BeanFactory not initialized or already closed - call &#39;refresh&#39; before access
- http学习 - 缓存
- lambda表达式的应用例子和JavaSE 8特性
- 【bzoj1593-预定旅馆】线段树维护连续区间
- PHP做分页查询(查询结果也显示为分页)
- quick 用系统浏览器打开url
- 如果你也想写个完整的 Vue 组件项目