剑指 Offer 53 - II. 0~n-1中缺失的数字
本文共 340 字,大约阅读时间需要 1 分钟。
二分法与按位异或两种方法都能有效解决问题。二分法的时间复杂度为O(logN),适合大数据量;按位异或方法的时间复杂度为O(N),实现简单。
二分法解析:
初始化左边界i=0,右边界j=数组长度-1。 计算中点m=(i+j)/2。 如果nums[m]等于m,说明缺失数字在右子数组,调整左边界i=m+1。 否则,缺失数字在左子数组,调整右边界j=m-1。 当i>j时,i为右子数组首位,返回i。 按位异或方法解析:
初始化异或变量xor=0。 遍历数组,计算nums[i]的异或。 计算0到n-1的异或,并与数组异或。 结果即为缺失数字。 优化建议:
- 使用二分法在大数据量下效率更优。
- 按位异或方法实现简单,适合小数据量。
结论:两种方法各有优劣,根据具体需求选择最合适的解决方案。
转载地址:http://vlhfk.baihongyu.com/