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
相关推荐
懒惰的bit2 分钟前
Python入门学习记录
python·学习
米羊1216 分钟前
Spring 框架漏洞
开发语言·python
二十雨辰9 分钟前
[python]-闭包和装饰器
python
prince_zxill18 分钟前
探索Nautilus Trader:高性能算法交易平台与事件驱动回测引擎的全面指南
算法
进击的荆棘25 分钟前
算法——二分查找
c++·算法·leetcode
识君啊25 分钟前
Java 滑动窗口 - 附LeetCode经典题解
java·算法·leetcode·滑动窗口
烟花落o28 分钟前
【数据结构系列02】轮转数组、返回倒数第k个节点
数据结构·算法·leetcode·刷题
努力也学不会java30 分钟前
【Spring Cloud】统一服务入口-Gateway
后端·算法·spring·spring cloud·gateway·服务发现
大尚来也30 分钟前
Python 调用 Ollama 本地大模型 API 完全指南
开发语言·python
追随者永远是胜利者34 分钟前
(LeetCode-Hot100)3. 无重复字符的最长子串
java·算法·leetcode·职场和发展·go