找出长度为n的所有数字,里面相邻数字不能一样 [No.53]
来源:互联网 发布:mac翻墙软件 编辑:程序博客网 时间:2024/05/17 06:34
问题:
给你一个数字长度,比如是 n ,那么打印出所有长度为 n 的数字,但是相邻数字不能一样。假如n = 3,那么121是可以的,112是不行的。
分析:
首先,该数字的第一个位置可以是1-9任意值,然后第二个位置可以是1-9任意值,但是不能和前面一个值相等。对于第三个位置,道理是一样的,所以,这里我们需要用到递归。对于每一个位置,我们需要遍历所有与前面位置不同的值。
public class NDigit {/** * @author beiyeqingteng * @param length : current digit's length * @param n: required length * @param digit: 1 - 9 * @param stack: stack is used to save the result */public static void ndigit(int length, int n, int digit, Stack<Integer> stack) {//satisfy the condition, output the resultif (length == n) {System.out.println(stack.toString()); return ;}if (length > n) return;//digit for the next position//enumerate all different casesfor (int i = 1; i <= 9; i++ ) {if (i != digit) {stack.push(i);ndigit(length + 1, n, i, stack);stack.pop();}}}public static void main(String[] args) {int n = 3;for (int i = 1; i <= 9; i++ ) {Stack<Integer> stack = new Stack<Integer>();stack.push(i);ndigit(1, n, i, stack);}}}
扩展:打印所有长度为n的数字,里面数字是单调递增的。比如,长度为4的数字 1234是单调递增的, 1368是单调递增的,1431不是单调递增的, 1131也不是单调递增的。
解答请参考:http://blog.csdn.net/beiyeqingteng/article/details/7289211
- 找出长度为n的所有数字,里面相邻数字不能一样 [No.53]
- 在一个长度为n的数组里的所有数字都在1到n-1的范围内。 有一个数字重复若干次,找出这个数字。
- 打印n长度为n的所有数字
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{
- 求长度为n的数字组合
- 在n个数字中,找出所有和为SUM的组合
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。
- java 找出小于数字N的所有素数
- 一个数组arr,长度为N,N小于10^8,里面数字的范围是1~N,求每个数字出现的次数
- 找出m个总和为n的数字
- 一个数组arr,长度为N,N小于10^8,里面数字的范围是1~N,是否有重复,并统计出来
- 数字n的所有子集
- 找出一堆数里面出现次数最多或最多的前N个数字
- n个数里面找出最大的m个数字(快排思想)
- 找出4位数的所有吸血鬼数字
- 找出4位数的所有吸血鬼数字
- 找出第 N 个数对应的数字
- LeetCode:Remove Element
- regex中如何排除一组字符串
- ubuntu旋转第二个屏幕
- cpio格式 initrd 的解压与压缩
- 把手机键盘输入转化成短消息 [No. 52]
- 找出长度为n的所有数字,里面相邻数字不能一样 [No.53]
- 把一个字符串通过相邻字符移位变成另一个字符串 [No. 54]
- 【第七章】 对JDBC的支持 之 7.5 集成Spring JDBC及最佳实践 ——跟我学spring3【私塾在线原创】
- 在pl/sql中使用警告
- JSON详解
- 10046 trace的跟踪等级
- 禁止tomcat 目录浏览以及设置友好错误页面
- 文件存放目录
- DOM操作与实例