Redian新闻
>
又一道面试题,我是不是想多了?
avatar
又一道面试题,我是不是想多了?# Programming - 葵花宝典
h*o
1
Question: Given the following prototype:
int compact(int * p, int size);
Write a function that will take a sorted array, possibly with duplicates,
and compact the array, returning the new length of the array. That is, if p
points to an array containing: 1, 3, 7, 7, 8, 9, 9, 9, 10, when the function
returns, the contents of p should be: 1, 3, 7, 8, 9, 10, with a length of 6
returned.
我觉得要分情况如果min(p)和max(p)差距小,就用设标注位的方法。
如果min(p)和max(p)差距大,size小,就用hash的方法。对吗?
用hash怎么做那?
avatar
t*t
2
你说得很对,你想太多了。

p
function
6

【在 h**o 的大作中提到】
: Question: Given the following prototype:
: int compact(int * p, int size);
: Write a function that will take a sorted array, possibly with duplicates,
: and compact the array, returning the new length of the array. That is, if p
: points to an array containing: 1, 3, 7, 7, 8, 9, 9, 9, 10, when the function
: returns, the contents of p should be: 1, 3, 7, 8, 9, 10, with a length of 6
: returned.
: 我觉得要分情况如果min(p)和max(p)差距小,就用设标注位的方法。
: 如果min(p)和max(p)差距大,size小,就用hash的方法。对吗?
: 用hash怎么做那?

avatar
s*u
3
都排好序拉,一个个抽出来就好拉,为什么hash啊

p
function
6

【在 h**o 的大作中提到】
: Question: Given the following prototype:
: int compact(int * p, int size);
: Write a function that will take a sorted array, possibly with duplicates,
: and compact the array, returning the new length of the array. That is, if p
: points to an array containing: 1, 3, 7, 7, 8, 9, 9, 9, 10, when the function
: returns, the contents of p should be: 1, 3, 7, 8, 9, 10, with a length of 6
: returned.
: 我觉得要分情况如果min(p)和max(p)差距小,就用设标注位的方法。
: 如果min(p)和max(p)差距大,size小,就用hash的方法。对吗?
: 用hash怎么做那?

avatar
F*n
4
问一下,如果array size不知道该怎么做?
avatar
s*u
5
没法做

【在 F*****n 的大作中提到】
: 问一下,如果array size不知道该怎么做?
avatar
F*n
6
上次微软面试偶的时候问到这题了, 我问他size是否知道,他说no
结果我没做出来.
不过我觉得他也不是很懂
发信人: skatou (skatou), 信区: Programming
标 题: Re: 又一道面试题,我是不是想多了?
发信站: BBS 未名空间站 (Wed Sep 12 10:21:00 2007), 转信
没法做

【在 F*****n 的大作中提到】
: 问一下,如果array size不知道该怎么做?
avatar
a*f
7
估计面试官以为你在问resulting array的size,所以他说不知道。
avatar
h*o
8
那时不是还要把*p的最后几位没用的销掉,还是就让他去?

p
function
6

【在 h**o 的大作中提到】
: Question: Given the following prototype:
: int compact(int * p, int size);
: Write a function that will take a sorted array, possibly with duplicates,
: and compact the array, returning the new length of the array. That is, if p
: points to an array containing: 1, 3, 7, 7, 8, 9, 9, 9, 10, when the function
: returns, the contents of p should be: 1, 3, 7, 8, 9, 10, with a length of 6
: returned.
: 我觉得要分情况如果min(p)和max(p)差距小,就用设标注位的方法。
: 如果min(p)和max(p)差距大,size小,就用hash的方法。对吗?
: 用hash怎么做那?

avatar
b*n
9
sizeof(p)/sizeof(*p)不就是int array的size吗

【在 s****u 的大作中提到】
: 没法做
avatar
k*f
10
@@@
看你的p是怎么定义了

【在 b*********n 的大作中提到】
: sizeof(p)/sizeof(*p)不就是int array的size吗
avatar
b*n
11
呵呵

【在 k****f 的大作中提到】
: @@@
: 看你的p是怎么定义了

avatar
s*u
12
作为参数传进去的sizeof(p)是指针size

【在 b*********n 的大作中提到】
: sizeof(p)/sizeof(*p)不就是int array的size吗
avatar
L*r
13
msize
avatar
N*n
14
俩指针,一个永远向前,另一个只有第一个指针遇到不同值时才向前并纪录。
一趟遍历不就完了。

【在 h**o 的大作中提到】
: Question: Given the following prototype:
: int compact(int * p, int size);
: Write a function that will take a sorted array, possibly with duplicates,
: and compact the array, returning the new length of the array. That is, if p
: points to an array containing: 1, 3, 7, 7, 8, 9, 9, 9, 10, when the function
: returns, the contents of p should be: 1, 3, 7, 8, 9, 10, with a length of 6
: returned.
: 我觉得要分情况如果min(p)和max(p)差距小,就用设标注位的方法。
: 如果min(p)和max(p)差距大,size小,就用hash的方法。对吗?
: 用hash怎么做那?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。