101道经典面试题 - 03

原题地址:http://topic.csdn.net/t/20060904/18/4997991.html

确实很有意思

 

 

03. Given   an   array   of   size   N   in   which   every   number   between   1   and   N,   determine   if   there   are   any   duplicates   in   it.   You   are   allowed   to   destroy   the   array   if   you   like.

    译:给你一个长度为N的整数数组,这个数组的元素值都在1到N之间,请判断数组中是否有重复的元素。

 

 

      思想:一遍扫描数组,遇到ai   !=   i的元素时,将ai换到   数组的ai位置,将那个位置的元素换到与其值相同的位置,直到遇到   i,换成一个有序的数组前缀或遇到重复的元素退出。

你可能感兴趣的:(面试,Duplicates)