一道有趣的谷歌面试题
2014-11-23 23:29
253 查看
题目:一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。
这个问题分析的连接地址:http://blog.csdn.net/morewindows/article/details/8204460#java, 这位博主已经把解决问题的思路分析得很清晰了,但该算法有一个缺点,就是会改变原来的数组, 下面我给出我自己的解法
如有错误的地方,望指正!
这个问题分析的连接地址:http://blog.csdn.net/morewindows/article/details/8204460#java, 这位博主已经把解决问题的思路分析得很清晰了,但该算法有一个缺点,就是会改变原来的数组, 下面我给出我自己的解法
public class RepeatNum { public static int NO_REPEAT_FLAG=-1; public int findRepeatNum2(int[] arr, int len){ int temp=0; for(int i=0; i<len; i++){ if((temp&(1<<arr[i]))!=0){ return arr[i]; }else{ temp=(temp|(1<<arr[i])); } } return NO_REPEAT_FLAG; } public static void main(String[] args){ RepeatNum obj = new RepeatNum(); int[] arr = {1,2,3,0,5,6,7,0}; System.out.println(obj.findRepeatNum2(arr, arr.length)); } }
如有错误的地方,望指正!
相关文章推荐
- 一道谷歌面试题
- 【白话经典算法系列之十】 一道有趣的GOOGLE面试题
- 9月13号某公司一道有趣面试题
- 一道有趣的面试题
- 一道有趣的GOOGLE面试题
- 来自苹果、谷歌、微软等知名公司六道有趣智力面试题,试试吧!
- 谷歌的一道面试题
- 今天碰到一道比较有趣的面试题,大家来探讨一下。
- 来自苹果、谷歌、微软等知名公司六道有趣智力面试题答案
- 一道有趣的C#面试题
- 一道有趣的面试题————待解决的问题
- 一道有趣的面试题
- C++::一道有趣的面试题(关于delete)
- 关于一道谷歌面试题——丑数的解答
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 看到的一道面试题,很有趣,与大家分享zt
- 有趣的一道面试题,求连续的0或者连续的1的最大次数
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】
- [Algorithms] [NOT SOLVED] [@尝试去实现] [推荐] 微软谷歌的一道面试题:如何分隔没有空格标点的英文句子
- 一道有趣的面试题