首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

一路程序题的反思——一些为了减少内存的开销

2012-08-01 
一道程序题的反思——一些为了减少内存的开销已知含有N个元素的一个数组,数组中各元素的范围是1~N-1,找出重

一道程序题的反思——一些为了减少内存的开销

已知含有N个元素的一个数组,数组中各元素的范围是1~N-1,找出重复的那个值。

(就是有N-1个数都填充到N个位置,这N-1个

数至少出现一次,就是说,肯定有哪个数出现了两次,把这个数找出来。


这道题,在去年冬天的澡堂里,同学和我讨论过,就是建一个一样大的数组,将原来的数组遍历一遍,相应的位置

置1,当再次置1时,返现已经是1时,这就是那个数。

但是我一般一定会用int a[N]。

看到某位大神用bit来标识是否已存在,顿时感觉差距好大。

以下是代码:

我稍微做了一些修改:

本题用到了。malloc就是动态开了一片堆。这次没有忘记使用free()。

使用了,assert()进行实参的合法性检验。

使用随机函数来产生位置和数字。


热点排行