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
相关推荐
长沙三为智能科技2 分钟前
多平台内容矩阵怎么配合GEO:4层分工与3条去重规则
python·aigc·geo优化
ycydynq3 分钟前
django 添加信息时,对外键设置条件
数据库·python·django
Rain的Java大神之路5 分钟前
LeetCode 21 合并两个有序链表:一道 Easy 题,凭什么刷掉一半候选人?
java·后端·算法
清水白石0089 分钟前
Python 安装与环境配置:Windows、macOS、Linux 完整指南(第2集)
windows·python·macos
一只QAQ11 分钟前
python语法学习
linux·python·学习
小蒋观天下12 分钟前
太阳能低功耗AI相机专项:AOV值守、唤醒时序、ISP启停时序BUG
深度学习·数码相机·算法·机器学习
wenyq720 分钟前
LeetCode 152. Maximum Product Subarray
java·算法·leetcode
全栈陈序员20 分钟前
【Python】基础语法入门(二十八)—— 数据库操作入门:用 SQLite 持久化数据
数据库·人工智能·python
余额瞒着我当琳21 分钟前
C++异常,异常的概念,异常抛出与捕获,RAII 和智能指针的设计思路,C++标准库一些指针的使用
java·开发语言·c++·算法
東隅已逝,桑榆非晚22 分钟前
map和set的使用
数据结构·c++·笔记·学习