也谈两个数n(n的值为1与9之间)之间相隔n个数的趣味题
来源:互联网 发布:怎么修改淘宝店铺类目 编辑:程序博客网 时间:2024/06/11 13:27
先看几个数:312132,231213,41312432,23421314
可以看到以上字串有以下特点: 2个1 之间有1个数,2个2 之间有2个数,2个3之间有3个数...
试找出由(1,1,2,2,3,3,4,4,5,5,6,6,..N,N) 2*N(N<=9) 个数组成的字符串满足上述条件的所有组合,即2个1 之间有1个数,2个2 之间有2个数,2个3之间有3个数...2个N之间有N个数。
看到这道题,便觉得可用求全组合的方法来求,把每2个相同的数看成是一个元素来处理。
我的做法是:(以N=3为例)
先声明一个整形数组,此数组有2*N个数,默认值都为0。
然后从1到N逐个填入到数组中去,(先检查数组的第i位和(i+N+1)位的值是否为0,若都是0则可以填入,否则继续搜索)
填入1时,可以产生以下4组解:
A1、101000
B1、010100
C1、001010
D1、000101
继续填入2时,可以产生以下4组解:
A2、121020(由A1而得)
B2、012102(由B1而得)
C2、201210(由C1而得)
D2、020121(由D1而得)
继续填入3时,可以产生以下2组解:
A2无法往下求解
312132(由B2而得)
231213(由C2而得)
D2无法往下求解
因此N=3时,有两个解。
具体实现请看代码:
- 也谈两个数n(n的值为1与9之间)之间相隔n个数的趣味题
- 找出1至n之间同构数的个数---转载
- 找出1至n之间同构数的个数
- 求两个数1~n之间的素数
- 1到n之间1的个数
- 0~n之间1的个数
- 求 1~n 之间素数的个数
- 1到n之间几个数的和为m
- 输入一个数(N),列出(1~N)之间的素数
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 算法导论8.3-4 O(n)时间内对[0..n^-1]之间的n个数排序
- 算法导论8.3-4 O(n)时间内对[0..n^-1]之间的n个数排序 .
- 算法导论8.3-4 O(n)时间内对[0..n^-1]之间的n个数排序
- 算法导论8.3-4 O(n)时间内对[0..n^-1]之间的n个数排序
- O(n)时间内对[0..n^-1]之间的n个数排序
- Google面试题详解(0~n之间1的个数,f(n)=n)
- XP下UDFS的问题,涉及注册表
- 装饰器模式
- MANIFEST.MF文件的格式
- .NET程序安装包制作(WinForm)
- 摘录, .net 并行操作指令
- 也谈两个数n(n的值为1与9之间)之间相隔n个数的趣味题
- 好吃的藕片
- Intellectual Property and Open Source: A Practical Guide to Protecting Code
- 事实表与维度表的区别与关系
- Learning ASP.NET 3.5 [ILLUSTRATED]
- 和平年代已经过去了
- delphi和 java通过socket通信的中文问题
- Sams Teach Yourself Ajax, JavaScript, and PHP All in One
- Carrier Ethernet: Providing the Need for Speed