AcWing 68:0到n-1中缺失的数字 ← 二分

【题目来源】
https://www.acwing.com/problem/content/64/

【题目描述】
一个长度为 n−1 的
递增排序数组中的所有数字都是唯一的,并且每个数字都在范围 0 到 n−1 之内。
在范围
0 到 n−1 的 n 个数字中有且只有一个数字不在该数组中,请找出这个数字。

【输入样例】
0 1 2 4

【输出样例】
3

【数据范围】
1≤n≤1000 

【算法分析】
以下算法思路来源于:
https://www.acwing.com/solution/content/1261/

根据题目给定的样例及陈述,在代码实现中可定义一个递增动态数组 v。
假设动态数组 v 中第一个缺失的数是 x,则其中的各数对应关系如下图所示。

从图中可以看出,数组左边蓝色部分都满足 v[i] == i,数组右边橙色部分都不满足 v[i] == i,因此我们可以二分出分界点 x 的值。
另外要注意特殊情况:当所有数都满足 v[i] == i 时,表示缺失的是 n。

【算法代码】

#include <bits/stdc++.h>
using namespace std;int getMissingNumber(vector<int>& v) {if(v.empty()) return 0;int le=0;int ri=v.size()-1;while(le<ri) {int mid=(le+ri)>>1;if(v[mid]!=mid) ri=mid;else le=mid+1;}if(v[ri]==ri) ri++;return ri;
}int main() {vector<int> v;int x;while(cin>>x) {v.push_back(x);}cout<<getMissingNumber(v)<<endl;return 0;
}/*
in:0 1 2 3 4 6
out:5
*/



【参考文献】
https://www.acwing.com/solution/content/1261/





 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vivado 定义板文件板

定义板文件板 &#xff1c;board&#xff1e;标记是板文件的根。它包括识别基本信息的属性关于董事会。 <board schema_version"2.1" vendor"xilinx.com" name"kc705" display_name"Kintex-7 KC705 Evaluation Platform" url&qu…

用C语言实现简单的三子棋游戏

目录 1 -> 模块简介 2 -> test.c 3 -> game.c 4 -> game.h 1 -> 模块简介 test.c:测试游戏逻辑 game.c: 函数的实现 game.h:函数的声明 2 -> test.c #define _CRT_SECURE_NO_WARNINGS 1#include "game.h";void menu() {printf("****…

Python 多文件内容去重写入一个文件中(Payload去重)

需求 1. 在进行渗透测试过程中&#xff0c;有多个字典&#xff0c;内容有重叠部分 2. 现需将所有字典内容去重后的内容写入一个字典中 代码 #! /usr/bin/env python # -*- coding: utf-8 -*-def remove_duplicates(input_file, output_file):# 读取输入文件内容并去重with …

Harmony Ble蓝牙App(四)描述符

Harmony Ble蓝牙App&#xff08;四&#xff09;描述符 前言正文一、优化二、描述① 概念② 描述提供者③ 显示描述符 三、源码 前言 上一篇中了解了特性和属性&#xff0c;同时显示设备蓝牙服务下的特性和属性&#xff0c;本文中就需要来使用这些特性和属性来完成一些功能。 正…

FaFu--练习复盘--1

1、输出图形及二维数组应用 1.1.输出图形 描述 编写程序打印n行如下图形&#xff0c;其中1≤n≤500。 输入用例 7 输出用例 具体实现 #include"stdio.h" int main(){int n,i,j;scanf("%d",&n);for(i 1; i< n;…

软考系分之计算机网络通信方向、同步和交换

文章目录 1、概述2、通信方向和同步3、交换方式4、总结 1、概述 本篇依旧是一图概括主要考察的知识点&#xff0c;包括通信方向&#xff08;单工、半双工、全双工&#xff09;&#xff0c;同步方式和数据交换等。 2、通信方向和同步 通信方向&#xff08;单工、半双工、全双工…

【react】创建react项目+项目结构

使用create-react-app快速搭建开发环境 create-react-app是一个快速创建React开发环境的工具&#xff0c;底层由Webpack构建&#xff0c;封装了配置细节 npx create-react-app react_hm执行命令后开始创建 创建好执行cd react_hm npm start 当看到webpack compiled successfu…

MySQL运维实战(4.3) SQL_MODE之ONLY_FULL_GROUP_BY

作者&#xff1a;俊达 ONLY_FULL_GROUP_BY 设置ONLY_FULL_GROUP_BY时&#xff0c;对有GROUP BY子句SQL&#xff0c;SELECT的字段要么是GROUP BY中的字段&#xff0c;要么对字段进行聚合运算&#xff08;如 SUM、COUNT 等&#xff09;&#xff0c;否则SQL执行报错。 不设置ONL…

Spring中的注解

Spring的配置 spring 2.5前xml spring 2.5后xmlannotation spring 3.0后annotationJavaConfig配置类 注解&#xff1a; 1.注入类 替换&#xff1a;<bean id"" class""></bean> 位置&#xff1a;类 语法:Component(value"注入容器中的…

springboot启动过程中触发的事件

在Spring Boot应用程序启动过程中&#xff0c;会触发以下几个重要的事件&#xff1a; 1.ApplicationStartingEvent&#xff1a;这是在应用程序启动的早期阶段触发的事件。在这个事件中&#xff0c;Spring Boot的SpringApplication正在准备应用程序上下文之前&#xff0c;但是在…

前端和后端交互方式

前端和后端交互一般通过HTTP请求和响应来进行。前端通过浏览器向后端发送请求&#xff0c;后端收到请求后进行处理并返回响应&#xff0c;前端接收响应后进行相应的处理。具体的交互方式如下&#xff1a; AJAX&#xff1a;前端通过JavaScript发起异步请求&#xff0c;向后端发…

spring boot shardingsphere mybatis-plus druid mysql 搭建mysql数据库读写分离架构

spring boot shardingsphere mybatis-plus druid mysql 搭建mysql数据库读写分离架构 ##关于window mysql主从搭建简单教程 传送门 window mysql5.7 搭建主从同步环境-CSDN博客 ##父pom.xml <?xml version"1.0" encoding"UTF-8"?> <project…

傲空间私有部署Windows指南

推荐阅读 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;二&#xff09; 安装 docker 请下载对应的 Docker&#xff0c;安装完成后启动。 Docker Desktop for Windows…

小程序宿主环境-组件image

image <image></image> <image src"/images/1.png" mode"aspectFit"></image> image组件的model属性 image组件的model属性用来指定图片的裁剪和缩放模式,常用的model属性如下 scaletofill:(默认缩放模式),不保持原有图片的纵横比…

领略指针之妙

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

springboot的自定义注解使用

1.自定义注解配合拦截器 // 自定义注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface MyAnnotation {// 自定义注解的属性 }// 控制器类 RestController public class MyController {GetMapping("/myEndpoint")MyAnnotation //…

MySQL主从集群

MySQL主从集群 主从模式、集群模式&#xff0c;都是在一个项目中使用多个mysql节点进行存储和读取数据。 当单机模式部署&#xff0c;不满足安全性、高可用、高并发等需求的时候&#xff0c;就需要考虑主从模式或者集群模式部署。 什么是主从模式&#xff1f; 主从模式&…

[3D]菜板上的鱼

本来想画条鲨鱼&#xff0c;结果成了条菜板上的鱼。 VS&#xff01; ** VS&#xff01; ** 【扭曲】更像菜板上的鱼了。

[C#]winform部署openvino官方提供的人脸检测模型

【官方框架地址】 https://github.com/sdcb/OpenVINO.NET 【框架介绍】 OpenVINO&#xff08;Open Visual Inference & Neural Network Optimization&#xff09;是一个由Intel推出的&#xff0c;针对计算机视觉和机器学习任务的开源工具套件。通过优化神经网络&#xff…

C++设计模式之 模板方法模式

【声明】本题目来源于卡码网&#xff08;题目页面 (kamacoder.com)&#xff09; 【提示&#xff1a;如果不想看文字介绍&#xff0c;可以直接跳转到C编码部分】 【设计模式大纲】 【简介】 --什么是模板方法模式&#xff08;第18种设计模式&#xff09; 模板方法模式&#xff0…