Study Plan For Algorithms - Part30

1. 0 ~ n-1中缺失的数字

一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0 ~ n-1之内。在范围0 ~ n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
方法一:

复制代码
def missingNumber(nums):
    i = 0
    j = len(nums) - 1
    while i <= j:
        m = (i + j) // 2
        if nums[m] == m:
            i = m + 1
        else:
            j = m - 1
    return i

方法二:

复制代码
def missingNumber(nums):
    nums.sort()
    for i, num in enumerate(nums):
        if num!= i:
            return i
    return len(nums)

方法三:

复制代码
def missingNumber(nums):
    n = len(nums)
    expected_sum = n * (n + 1) // 2
    actual_sum = sum(nums)
    return expected_sum - actual_sum
相关推荐
2501_924952692 分钟前
C++模块化编程指南
开发语言·c++·算法
qzhqbb3 分钟前
差分隐私与大模型+差分隐私在相关领域应用的论文总结
人工智能·算法
2401_831920746 分钟前
基于C++的爬虫框架
开发语言·c++·算法
2401_846341657 分钟前
Python Lambda(匿名函数):简洁之道
jvm·数据库·python
2401_8796938710 分钟前
进阶技巧与底层原理
jvm·数据库·python
阿_旭12 分钟前
基于YOLO26深度学习的【桃子成熟度检测与分割系统】【python源码+Pyqt5界面+数据集+训练代码】图像分割、人工智能
人工智能·python·深度学习·桃子成熟度检测
MSTcheng.13 分钟前
【优选算法必修篇——位运算】『面试题 01.01. 判定字符是否唯一&面试题 17.19. 消失的两个数字』
java·算法·面试
weixin_4219226913 分钟前
模板元编程性能分析
开发语言·c++·算法
蹦哒15 分钟前
Kotlin 与 Java 语法差异
java·python·kotlin
2401_8512729915 分钟前
C++中的类型擦除技术
开发语言·c++·算法