【Python3】【力扣题】268. 丢失的数字

【力扣题】题目描述:

【Python3】代码:

1、解题思路:哈希。元素去重,依次判断是否在0-n内,没有则返回。

知识点:set(...):转为集合,集合中的元素不重复。

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        a = set(nums)
        for i in range(len(nums)+1):
            if i not in a:
                return i

2、解题思路:集合的差。0-n的集合与元素去重后的集合的差,即没有出现的数字。

知识点:set(a)-set(b):获取a中有但b中没有的元素。返回集合。

              集合.pop():随机移除元素并返回该元素。

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        aset = set(range(len(nums)+1)) - set(nums)
        return aset.pop()

3、解题思路:排序。下标与元素一致,若不一致,则下标对应的元素没有出现。若都一样,则n没有。

知识点:序列.sort():在原序列基础上排序,改变原序列。

              enumerate(序列):返回可迭代的下标和下标对应的元素,下标从0开始。

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        nums.sort()
        for i,x in enumerate(nums):
            if i != x: 
                return i
        return len(nums)

4、解题思路:异或。将各元素和0-n都进行异或,最终结果为只出现一次的元素,即原列表没有的数字。

按位异或运算 ⊕满足交换律和结合律,且对任意整数 x都满足:x⊕x=0 和 x⊕0=x。

知识点:a ^ b:a和b异或。 

注解:两两异或,res记录异或的结果。

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        res = 0
        for i,x in enumerate(nums):
            res ^= i ^ x
        return res ^ len(nums)

5、解题思路:数学。0-n的和为\frac{n*(n+1)}{2},与各元素和 相减,结果为没有出现的数字。

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        n = len(nums)
        return n*(n+1)//2 - sum(nums)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/143702.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

打破语言壁垒,实现全球商贸:多语言多商户跨境商城源码引领电商新潮流

随着全球化的不断深入,电子商务的蓬勃发展,传统的单语言电商模式已经无法满足日益多元化的市场需求。多语言多商户跨境商城源码,一种创新的电商解决方案,应运而生。它打破了语言和地域的限制,让全球的商家和消费者都能…

uniapp打包安卓app获取包名

uniapp打包安卓app获取包名的两种方式 1.uniapp云打包 这上面直接可以看到包名,可以修改,也可以在 manifest.json 文件中配置修改 package配置的就是包名,要确保唯一性 2.使用aapt工具获取 1.下载aapt工具,然后添加到环境变量…

tcpdump wireshark简单使用

tcpdump工作原理 tcpdump 是 Linux 系统中非常有用的网络工具,运行在用户态,本质上是通过调用 libpcap 库的各种 api 来实现数据包的抓取功能,利用内核中的 AF_PACKET 套接字,抓取网络接口中传输的网络包。查 看 tcpdump 的 手册…

驱动程序编进内核或则编成模块

驱动程序可以编进内核或则编成模块 驱动程序编成模块 打开/home/book/100ask_imx6ull-sdk/Linux-4.9.88/drivers/char/Kconfig文件,添加以下信息。 在/home/book/100ask_imx6ull-sdk/Linux-4.9.88在目录下使用make memuconfig命令查看配置菜单。 可以按/&#…

二叉树理论碎碎记

二叉树的种类 在刷题的过程中,我们主要关注两种主要形式:满二叉树和完全二叉树。 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。如下图所示:这棵二叉…

【机器学习基础】机器学习的基本术语

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐: 【机器学习基础】机器学习入门(1) 【机器学习基…

ubuntu20.04有公网ip如何做端口映射?

一,有公网IP时如何做端口映射? 然后打开浏览器,输入192.168.2.1自己路由地址,进入路由器的控制面板(如果不知道用户名和密码,可以在自己路由设备背面可见默认帐号密码)。 点击转发规则&…

ESP32 Arduino实战基础篇-生成 PWM 信号

在本教程中,我们将向您展示如何使用 Arduino IDE 通过 ESP32 生成 PWM 信号。作为示例,我们将构建一个简单的电路,使用 ESP32 的 LED PWM 控制器对 LED 进行调光。我们还将向您展示如何同时在不同的 GPIO 上获取相同的 PWM 信号。 在继续本教程之前,您应该在 Arduino IDE 中…

pytorch-gpu(Anaconda3+cuda+cudnn)

文章目录 下载Anaconda3安装,看着点next就行比较懒所以自动添加path测试 cuda安装的时候不能改路径如果出现报错,关闭杀毒软件一直下一步就好取消勾选“CUDA”中的“Visual Studio Intergration”一直下一步即可测试安装成功 cudnn解压后将这三个文件夹复…

2023湖南省赛

​​​​​​连接 目录 A:开开心心233 B:Square Game F:necklace K:tourist 补题中,会给出大部分代码 A:开开心心233 签到题 ,无论二分还是解方程还是直接for循环枚举都能直接通过啦 signed main() {ios_base::sync_with_stdio(0); cin.tie(0),co…

基于FPGA的图像RGB转HLS实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1计算最大值和最小值 4.2计算亮度L 4.3计算饱和度S 4.4计算色调H 5.算法完整程序工程 1.算法运行效果图预览 将FPGA结果导入到MATLAB显示效果: 2.算法运行软件版本 Vivado…

【史上最全】涵盖所有「存图方式」与「最短路算法」

题目描述 这是 LeetCode 上的 「1334. 阈值距离内邻居最少的城市」 ,难度为 「中等」。 Tag : 「最短路」、「图」 有 个城市,按从 到 编号。 给你一个边数组 edges,其中 代表 和 两个城市之间的双向加权边,距离阈值是一个整…

ts+vite报错:找不到模块“/src/.../...”或其相应的类型声明

问题描述 vuets项目开发时,通过绝对路径引入模块,发现ts报错:找不到模块“/src/script/game”或其相应的类型声明。ts(2307)。但是项目能正常运行。 原因 由于并没有配置代表src,结果通过绝对路径引入还是报错,于是换…

国产源代码扫描工具DMSCA扫描出的报告优秀吗?

在源代码扫描工具中,扫描报告是非常具有参考意义的,一方面可以了解我们开发项目的漏洞情况,另一方面也可以针对扫出的漏洞进行修复,确保开发出安全可靠的软件。误报和漏报是一个非常重要的参考指标。 国产源代码扫描工具DMSCA&am…

andorid 日历选择器

先看效果图: 主要代码 package com.example.flyimport android.annotation.SuppressLint import android.content.Context import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import…

算法通关村第九关-青铜挑战二分查找算法

大家好我是苏麟 , 今天聊聊二分查找算法 ...... 普通查找 普通查找就是最简单的循环查找 , 无论是有席的还是无席的都可以,也不需要排序,只需要一个个对比即可,但其实效率很低 : public int search(int[] arr, int target) {for (int i 0;…

GEE遥感云大数据林业应用典型案例实践及GPT模型应用

近年来遥感技术得到了突飞猛进的发展,航天、航空、临近空间等多遥感平台不断增加,数据的空间、时间、光谱分辨率不断提高,数据量猛增,遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

SPSS时间序列分析:谱分析

前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为:SPSS25.0 本专栏所有的数据文件请点击此链接下…

eVTOL分布式电推进(DEP)动力测试系统

产品简介 分布式电推进(DEP)技术因其灵活多变的机械电气化设计,可以大大提升动力系统的安全性冗余,极大增强飞行过程中的可操控性,同时可以有效降低本机噪音,最大限度提升动力系统的能源使用效率等优势&am…

释放潜能,加速创新 | 低代码赋能企业数据资产管理(附案例)

在当今数字化快速发展的时代,企业要想保持竞争力,就必须紧跟潮流,不断进行自我革新。其中,数字化转型已成为企业发展的重要一环,在这个过程中,数据资产作为企业核心竞争力的关键组成部分,其管理…