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
相关推荐
m0_53123717几秒前
C语言-指针,结构体
c语言·数据结构·算法
癫狂的兔子2 分钟前
【Python】【机器学习】十大算法简介与应用
python·算法·机器学习
丰海洋7 分钟前
leetcode-hot100-1.两数之和
数据结构·算法·leetcode
苦藤新鸡7 分钟前
58 单词搜索
数据结构·算法
ZaneAI10 分钟前
🚀 Claude Agent SDK 使用指南:概述
python·agent·claude
_F_y12 分钟前
背包问题动态规划
算法·动态规划
Frostnova丶13 分钟前
LeetCode 401. 二进制手表
算法·leetcode
Wect15 分钟前
LeetCode 104. 二叉树的最大深度:解题思路+代码解析
前端·算法·typescript
Wect20 分钟前
LeetCode 100. 相同的树:两种解法(递归+迭代)详解
前端·算法·typescript
不会敲代码120 分钟前
面试必考:如何优雅地将列表转换为树形结构?
javascript·算法·面试