【C++刷题】力扣-#268-丢失的数字

embedded/2024/10/23 22:23:59/

题目描述

给定一个包含从 1 到 n 的整数的数组 nums,其中 n 是数组的长度。数组中的元素都不相同,但是缺失了一个数字,导致数组和为 n*(n+1)/2 减去的某个数字。找出这个缺失的数字。

示例

示例 1

输入: nums = [3,0,1]
输出: 2

示例 2

输入: nums = [0,1,3]
输出: 2

示例 3

输入: nums = [9,6,4,2,3,5,7,0,1]
输出: 8

题解

这个问题可以通过数学公式来解决。根据等差数列求和公式,我们知道从 1 到 n 的整数和为 n*(n+1)/2。因此,我们可以通过计算数组中所有数字的和,然后从总和 n*(n+1)/2 中减去这个值来找到缺失的数字。

  1. 计算总和:计算数组 nums 中所有数字的和。
  2. 计算缺失的数字:使用公式 n*(n+1)/2 - sum 来计算缺失的数字,其中 n 是数组的长度,sum 是数组中数字的和。
  3. 返回结果:返回计算出的缺失数字。

代码实现

int missingNumber(vector<int>& nums) {int n = nums.size();int totalSum = n * (n + 1) / 2;int arraySum = 0;for (int num : nums) {arraySum += num;}return totalSum - arraySum;
}

复杂度分析

● 时间复杂度:O(n),其中 n 是数组 nums 的长度。我们需要遍历一次数组来计算和。
● 空间复杂度:O(1),因为我们只使用了常数个额外变量。
这个算法的优势在于它的时间效率较高,只需要一次遍历即可找到缺失的数字,且不需要额外的存储空间。


http://www.ppmy.cn/embedded/129921.html

相关文章

Vivado - Aurora 8B/10B IP

目录 1. 简介 2. 设计调试 2.1 Physical Layer 2.2 Link Layer 2.3 Receiver 2.4 IP 接口 2.5 调试过程 2.5.1 Block Design 2.5.2 释放 gt_reset 2.5.3 观察数据 3. 实用技巧 3.1 GT 坐标与布局 3.1.1 选择器件并进行RTL分析 3.1.2 进入平面设计 3.1.3 收发器布…

git提交信息写错处理方式

在Git中&#xff0c;你可以通过使用rebase命令来合并提交记录。以下是一个简单的步骤来合并一系列提交&#xff1a; 使用git rebase -i开始交互式变基。在打开的编辑器中&#xff0c;你会看到一个提交列表。若要合并提交&#xff0c;将要合并的提交前面的pick改为squash或s。保…

【计算机网络 - 基础问题】每日 3 题(四十二)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…

ESP32 S3 语音识别 语音唤醒程序流程

ESP32 S3 语音识别 语音唤醒程序流程 参考例程首先进行esp_periph_set_init 初始化之后执行setup_player&#xff0c;之后执行start_recorder&#xff0c;识别的主处理voice_read_task 参考例程 D:\Espressif\esp-adf\examples\speech_recognition\wwe\ 首先进行esp_periph_se…

Molmo和PixMo:为最先进的多模态模型提供开放权重和开放数据

摘要 https://arxiv.org/pdf/2409.17146 当今最先进的多模态模型仍然是专有的。性能最强的开源模型严重依赖专有视觉语言模型(Vision-Language Model,简称VLM)的合成数据来获得良好性能,有效地将这些封闭模型提炼为开放模型。因此,业界仍然缺少关于如何从零开始构建高性能…

wordpress 子比主题美化 四宫格 多宫格 布局插件

wordpress 主题美化 四宫格 多宫格 布局插件&#xff08;只在子比主题上测试过&#xff0c;其它主题没测试&#xff09; A5资源网四宫格布局插件是一个功能丰富的WordPress插件,专为创建自适应的四宫格布局而设计。这个插件具有以下主要特点: 灵活的布局: 支持1到8个宫格的自定…

Golang | Leetcode Golang题解之第485题最大连续1的个数

题目&#xff1a; 题解&#xff1a; func findMaxConsecutiveOnes(nums []int) (maxCnt int) {cnt : 0for _, v : range nums {if v 1 {cnt} else {maxCnt max(maxCnt, cnt)cnt 0}}maxCnt max(maxCnt, cnt)return }func max(a, b int) int {if a > b {return a}return …

【进程调度模拟】Linux “操作系统进程调度算法模拟:时间片轮转、优先级调度与先来先服务“

文章目录 1. 基于时间片轮转&#xff08;Round Robin, RR&#xff09;调度算法模拟2. 最高优先级优先&#xff08;Priority Scheduling&#xff09;调度算法模拟3. 先来先服务&#xff08;FCFS&#xff09;调度算法模拟 1. 基于时间片轮转&#xff08;Round Robin, RR&#xff…