社区
数据结构与算法
帖子详情
字典序列的数字
WaterWalker
2006-12-06 11:54:26
如何生成字典序列的数字,数字范围为[M,N]
例如:
1, 10, 100, 101, ..., 109, 11, 110..
现在写的是递归的,求个非递归的。
...全文
288
3
打赏
收藏
字典序列的数字
如何生成字典序列的数字,数字范围为[M,N] 例如: 1, 10, 100, 101, ..., 109, 11, 110.. 现在写的是递归的,求个非递归的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
WaterWalker
2006-12-06
打赏
举报
回复
还一个办法是把数字转成字符后排序。但是[m,n]区间太大时就不可行。
希望能够动态生成。
WaterWalker
2006-12-06
打赏
举报
回复
生成的数据:
1 10 11 12 13 14 15 16 17 18
19 2 20 21 22 23 24 25 26 27
28 29 3 30 31 32 33 34 35 36
37 38 39 4 40 41 42 43 44 45
46 47 48 49 5 50 51 52 53 54
55 56 57 58 59 6 60 61 62 63
64 65 66 67 68 69 7 70 71 72
73 74 75 76 77 78 79 8 80 81
82 83 84 85 86 87 88 89 9 90
91 92 93 94 95 96 97 98 99 Press an
y key to continue
WaterWalker
2006-12-06
打赏
举报
回复
写了一个,贴出来。
相信有更好的方法
int i, j, k, id;
int ld;
int dd[5];
//生成[1, 10^n]的字典序列数据
ld = log10(100);
dd[ld-1] = 1;
for(i = 0; i < ld - 1; i++)
dd[i] = -1;
for(i = 1; i < 100; i++){
k = 0;
id = 0;
for(j = 0; j < ld; j++){
if(dd[j] == -1)
continue;
id += dd[j] * pow(10, k);
k++;
}
printf("%d \t", id);
k = 0;
for(j = 0; j < ld && k == 0; j++){
if(dd[j] == -1){
dd[j] = 0;
k = 1;
}
}
if(k == 1)
continue;
for(j = 0; j < ld; j++){
k = dd[j] + 1;
if(k == 10){
dd[j] = -1;
}else{
dd[j] = k;
break;
}
}
}
数字
、字符串、集合、序
列
、字典的操作符、处理函数及方法(Python)
(前言:鉴于QQ日志记录编辑不稳定,尝试改用CSDN) 0.
数字
: (1)+ - * / // % ** 二元操作符 (2)abs()、divmod():返回一个包含商和余数的元组(a // b, a % b)、 pow()、round():貌似很有意思、 max()、min() (3)int()、float()、complex() 1、字符串: (1)字符串类型的表示:有两类共四种表示方法 ...
leetcode-数组33题:实现获取下一个排
列
的函数,算法需要将给定
数字
序
列
重新排
列
成
字典序
中下一个更大的排
列
。
实现获取下一个排
列
的函数,算法需要将给定
数字
序
列
重新排
列
成
字典序
中下一个更大的排
列
。 题目解题思路JAVA代码实现 题目 实现获取下一个排
列
的函数,算法需要将给定
数字
序
列
重新排
列
成
字典序
中下一个更大的排
列
。 如果不存在下一个更大的排
列
,则将
数字
重新排
列
成最小的排
列
(即升序排
列
)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧
列
,其相应输出位于右侧
列
。 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1 解题思路 (后面给出) JAVA代
Leetcode Lexicographical Numbers
数字
字典序
列
输出
Given an integern, return 1 -nin lexicographical order. For example, given 13, return: [1,10,11,12,13,2,3,4,5,6,7,8,9]. Please optimize your algorithm to use less time and space. The input size m...
2021届秋招--网易笔试--输出指定最小
字典序
题目:先输入两个数n,m。然后接着输入m个数(每个数小于等于n)输出最小
字典序
。同时保证在输出结果中删去无关
数字
后可以得到输入的m个数的正确序
列
。 示例: 输入: 5 2 4 2 输出:1 3 4 2 5 解释:1 2 3 4 5是n为5时候最小的
字典序
,但是输出要4在2前面,所以这个输出才是最小的。 (先上代码,思路详述在下面) public class Num2 { public static void main(String[] args){ ...
求n位全排
列
字典排序后,给定序
列
的下一序
列
求n位全排
列
字典排序后,给定序
列
的下一序
列
。 例如n=3的全排
列
:123,132,213,231,312,321. 给定序
列
213,则需要输出231 思考:按字典排序后,要输出给定序
列
N的下一序
列
,则要尽量保证前面的几位不变,变化
数字
的位置越靠后,则数值改变越小。 public static int nextArray (int N ,int n){
数据结构与算法
33,025
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章