返回信息流面试题如下,假如现在给定一个正整数n,然后将1,2,3,4,,,n这些数字按照字符顺序排序,然后返回。
举个例子,假如n=11, 排序的结果是1,10,11,2,3,4,5,6,7,8,9,时间复杂度要求为o(n)
方法原型长这样
public List〈Integer〉 sortId(int n)
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #87779同步于 2015/8/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
求问一个sort id的面试题
kelvinlu
2015/8/31镜像同步60 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
这里的分析是典型的错误:请借鉴
分析:
1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 100, 101, 102, 103,
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
“1”开头的永远小于"2"开头的。所以在考虑"2"开头的之前,先把"1"开头的都数出来。然后依次类推。
源码:
https://github.com/loverszhaokai/Demo/blob/master/sort/src/sort_dictionary.cc
赞
【 在 Insane (Insane) 的大作中提到: 】
: 分析:
: 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 100, 101, 102, 103,
: 2, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
: ...................
通过『我邮2.0』发布
【 在 Insane 的大作中提到: 】
: 分析:
: 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 100, 101, 102, 103,
: 2, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
: ...................
我怎么感觉应该是
1,10,100,101,102,103,11,12,13,14,15,16,17,18,19,
2....
输入 num=[1,2, ,n]
num1=num2= =num9=[]
k=0 i=1
while(10∧k<n)
while(i<2*10∧k and i<n)
num1=num1+[i]
i=i+1
while(i<3*10∧k and i<n)
num2=num2+[i]
i=i+1
......
k=k+1
num=num1+...+num9
这样对不?
来自「北邮人论坛手机版」
这不是排序,这是数列生成。
【 在 skyforrest 的大作中提到: 】
: 关键是怎么让复杂度只为n
: 来自「北邮人论坛手机版」
来自「北邮人论坛手机版」
我也这么认为
【 在 unfathomable 的大作中提到: 】
: 我怎么感觉应该是
: 1,10,100,101,102,103,11,12,13,14,15,16,17,18,19,
: 2....
来自「北邮人论坛手机版」
liunx文件的排序就是这样排的吧!光数字的化!不知道linux是怎么实现的!@nuanyangyang
【 在 kelvinlu (kelvinlu真帅) 的大作中提到: 】
: 面试题如下,假如现在给定一个正整数n,然后将1,2,3,4,,,n这些数字按照字符顺序排序,然后返回。
: 举个例子,假如n=11, 排序的结果是1,10,11,2,3,4,5,6,7,8,9,时间复杂度要求为o(n)
通过『我邮2.0』发布