Leecode热题100---二分查找---34:在排序数组中查找元素的第一个和最后一个的位置

题目
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target,返回 [-1, -1]。

方法1、枚举
思路:通过正向枚举和反向枚举找到对应下标的位置

#include<iostream>
#include<vector> 
using namespace std;class Solution
{vector<int> searchRange(vector<int>& nums,int target){// 定义了2个整型元素的向量,且给出每个元素的初值为-1vector<int> ans(2,-1);int n =nums.size();for(int i =0;i<n; i++){if(nums[i] == target){ans[0] = i;break;}}for(int j = n-1;j>=0;j--){if(nums[j] == target){ans[1] = j;break; }}return ans;	}
};

方法2、二分查找
思路
找等于target的一个位置可以等价于求>= target的第一个位置
找等于target的最后一个位置可以等价于求 >= target+1的第一个位置 - 1
问题的难点就变成了如何快速找到大于等于target的第一个元素位置

class Solution
{
public:// 闭区间:[left,right]int lowBound(vector<int>& nums,int target){int left = 0, right = nums.size()-1;while(left<=right){int mid = left + (right - left)/2;if(nums[mid] < target){left = mid + 1;}else{right = mid - 1;}}return left;}vector<int>searchRange(vector<int>& nums, int target){// 左区间值int start = lowBound(nums,target);// 如果nums中没有targetif(start == nums.size() || nums[start] != target){return {-1,-1};}// 右区间值int end = lowBound(nums,target + 1)-1;return {start,end};}
};

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

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

相关文章

【EI会议】第二届计算机、物联网与智慧城市国际会议

第二届计算机、物联网与智慧城市国际会议 快速通道 投稿链接&#xff1a;loading 截稿时间&#xff1a;9月15日 检索&#xff1a;EI检索 一、会议信息 大会官网&#xff1a;www.ciotsc.org 会议地点&#xff1a;湖南株洲 会议时间&#xff1a;2023年11月15日-17日 二、征稿主…

Go语言redis框架 — go-redis

https://zhuanlan.zhihu.com/p/645669818 一、简述 1. API友好&#xff0c;命令名称和参数与Redis原生命令一致&#xff0c;使用简单方便。 2. 支持完整的Redis命令集&#xff0c;覆盖了字符串、哈希、列表、集合、有序集合、HyperLogLog等数据结构。 3. 支持连接池&#x…

MySQL中SQL表设计的注意事项

效率工具 推荐一个程序员的常用工具网站&#xff0c;效率加倍嘎嘎好用&#xff1a;程序员常用工具 云服务器 云服务器限时免费领&#xff1a;轻量服务器2核4G腾讯云&#xff1a;2核2G4M云服务器新老同享99元/年&#xff0c;续费同价阿里云&#xff1a;2核2G3M的ECS服务器只需99…

python读取xml列数据绘制3D散点图

python 读取excel 3d散点图 在Python中&#xff0c;要读取Excel文件并创建3D散点图&#xff0c;你可以使用pandas库来读取数据&#xff0c;然后使用matplotlib库来创建3D散点图。以下是一个简单的例子&#xff1a; 首先&#xff0c;确保安装了所需的库&#xff1a; pip inst…

初中地理的中考知识点 中考刷题

初中地理的中考知识点 小程序刷题&#xff0c;推荐用一叶兰 一&#xff0c;地球和地图 1、地球的形状是一个两极略扁&#xff0c;赤道略鼓的不规则的球体。地球的平均半径长是6371千米&#xff0c;赤道长约为4万千米。表面积约为5.1亿平方千米。 2、地球的自转所围绕的假想…

机器学习 - 不均衡学习和异常点检测

第一部分&#xff1a;不均衡学习 1. 引言 定义与重要性 不均衡数据集&#xff1a;指数据集中不同类别的数据数量差异很大&#xff0c;通常是正负样本比例严重失衡。例如&#xff0c;在医疗诊断中&#xff0c;患病患者&#xff08;正样本&#xff09;远少于健康患者&#xff…

基于扩散模型的,开源世界模型DIAMOND

日内瓦大学、微软研究院和爱丁堡大学的研究人员联合开源了&#xff0c;基于扩散模型的世界模型—DIAMOND。 研究人员之所以选择扩散模型作为基础&#xff0c;是因为可以更好地捕捉视觉细节&#xff0c;同时具有建模复杂多模态分布的能力&#xff0c;以便在不同的环境下进行训练…

vue3 手动简单 24h 甘特图封装

甘特图 手动封装简版甘特图&#xff0c;纯展示功能&#xff0c;无其他操作 文章目录 甘特图前言效果图组件使用总结 前言 开始的思路是使用echarts 瀑布图来体现&#xff0c;但是试验后发现&#xff0c;头部时间功能不满足&#xff0c;然未找到其他组件&#xff0c;于是手动封…

VTK实现三视图显示及交互STL模型

VTK实现STL模型的三视图显示及交互 最近收到需求&#xff0c;要实现多视图显示同一个STL模型&#xff0c;并且控制主窗口要其他试图窗口也跟着交互&#xff0c;花了点时间去尝试一下&#xff0c;把这个效果给实现出来了&#xff0c;而且实现也挺简单。 效果演示 要点 用同一个…

微火全域运营平台成优选,业内人士纷纷研究!

随着全域运营赛道的兴盛&#xff0c;越来越多的全域运营平台陆续上线&#xff0c;拓宽全域运营服务商选择空间的同时&#xff0c;也让全域运营平台选择成为了他们最为头疼的问题。在此背景下&#xff0c;各大全域运营平台背后的研发公司开始各出奇招&#xff0c;以获得更多全域…

EI期刊的定金和尾款

当涉及到EI&#xff08;工程索引&#xff09;期刊发表并支付定金和尾款时&#xff0c;许多学者和研究人员可能会感到担忧&#xff0c;因为这涉及到一定的风险。在探讨这个话题时&#xff0c;我们需要考虑几个因素&#xff0c;包括期刊的声誉、可信度、出版质量以及作者的权益保…

windows上安装miniforge和jupyterlab

1&#xff0c;下载miniforge3 GitHub - conda-forge/miniforge: A conda-forge distribution. 下载下来后傻瓜式安装就可以了 配置环境变量&#xff0c;在系统环境变量的path添加下列就行了&#xff0c;根据自己的路径修改 2&#xff0c;创建虚拟环境 conda create -n test …

layui实现表格根据数据来勾选已保存的数据

示例图 勾选一次保存后&#xff0c;每次进到查询都会看到被勾选的数据&#xff0c;代码如下&#xff1a; done: function(res, curr, count) {var groupId "[[${groupId}]]";$.ajax({url: //写后端获取数据的接口type: GET,success: function(data) {console.log(d…

3.00002 内存管理之postgresql如何初始化内存上下文,都初始化了哪些上下文?

文章目录 解决问题:PostgreSQL 7. 1 以前的版本在处理大量以指针传值的查询时一直存在着内存泄漏的问题,直到 查询结束才能将内存收回 。内存上下文-数据结构内存上下文-启动相关函数MemoryContextInitAllocSetContextCreate (宏,定义为:AllocSetContextCreateInternal (as…

ArcGIS常规操作-带你创建正确的空间数据库

ArcGIS常规操作-带你创建正确的空间数据库 ArcGIS一词在各行业中出现得越来越多&#xff0c;尤其在国土空间规划中&#xff0c;依赖大量GIS工具和技术的应用&#xff0c;ArcGIS成为了必备的技能之一。今天讲解一下ArcGIS的基础操作&#xff0c;让大家可以快速地上手ArcGIS&…

Graph Composer全面介绍

本文全面介绍了Graph Composer的功能、安装、使用方法以及高级特性&#xff0c;旨在帮助读者从基础到高级全面掌握Graph Composer的使用&#xff0c;并有效应用于智能视频分析和AI应用开发。 文章目录 Graph Composer概述Graph Composer的基本功能和优势Graph Composer与NVIDIA…

亮相CCIG2024,合合信息文档解析技术破解大模型语料“饥荒”难题

近日&#xff0c;2024中国图象图形大会在古都西安盛大开幕。本届大会由中国图象图形学学会主办&#xff0c;空军军医大学、西安交通大学、西北工业大学承办&#xff0c;通过二十多场论坛、百余项成果&#xff0c;集中展示了生成式人工智能、大模型、机器学习、类脑计算等多个图…

SQL问题的常用信息收集命令及解决思路 |OceanBase应用实践

面对SQL问题&#xff0c;大家的常用的分析思路是&#xff1a; 一、问题是否源于SQL本身&#xff1f;是的话需进行SQL调优。 二、SQL语句本身无误&#xff0c;但执行效果并未达到我们的预期效果。 检查当前的服务器负载状况&#xff0c;例如CPU利用率、内存占用、IO读写等关键…

[蓝桥杯 2021 省 AB2] 负载均衡

一.题目 题目描述 有 n 台计算机&#xff0c;第 i 台计算机的运算能力为 v i v_i vi​。 有一系列的任务被指派到各个计算机上&#xff0c;第 i 个任务在 a i a_i ai​ 时刻分配&#xff0c;指定计算机编号为 b i b_i bi​&#xff0c;耗时为 c i c_i ci​ 且算力消耗为…

敏感数据的授权和传输加密解决方案

需求背景&#xff1a;解决敏感数据的访问授权和安全传输。 KSP密钥管理系统结合USB Key实现CA证书签发的过程可以大致分为以下几个步骤&#xff1a; 1. 生成密钥对&#xff1a; 用户首先使用USB Key生成一对密钥&#xff0c;包括公钥和私钥。公钥用于加密和验证数字签名&…