共有回帖数  0  个 
	 
	
	
	
     
          
          
               
				
			 
				
					 
 
            
				   - 
						
						
							 
									前几天贴吧里有人问的面试题,有一道变体题目如下:
 
 某数组A[1..n]含有所有从0到n的整数,但其中有一个整数不在数组中。通过利用一个辅助数组B[0..n]来记录A中出现的整数,很容易在O(n)时间内找出所缺的整数。
 但是在这个问题中,我们却不能由一个单一操作来访问A中的一个完整整数,因为A中的元素是以二进制表示的。我们所能用的唯一操作就是“取A的第j位”,这个操作所花时间为常数。
 试证明:如果访问数组A中信息的唯一方式是这种单一位操作,仍能在O(n)时间内找出所缺的整数。A之外的任一完整整数仍然可以由一个单一操作来访问。
 
 现在只想到了O(nlgn)复杂度的算法,谁能给些指点 
 A之外的任一完整整数仍然可以由一个单一操作来访问。
 
 这句话应该是解决问题所在,但是没想到应该怎样去利用这一点
 楼主 2016-03-31 14:18 回复 
 
 
   
             
                  
                  
 
 
 
     
	 
  
	Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
	
	意见反馈 | 
	关于直线 | 
	版权声明 | 
	会员须知