leetcode34. 在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。

你的算法时间复杂度必须是 O(log n) 级别。

如果数组中不存在目标值,返回 [-1, -1]。

示例 1:

输入: nums = [5,7,7,8,8,10], target = 8
输出: [3,4]
示例 2:

输入: nums = [5,7,7,8,8,10], target = 6
输出: [-1,-1]

思路:两个二分,稍微改一下就可以找到第一个target或最后一个target;

class Solution {public int[] searchRange(int[] nums, int target) {int[] ans=new int[2];ans[0]=searchRangeLeft(nums,target);ans[1]=searchRangeRight(nums,target);return ans;}public int searchRangeLeft(int[] nums, int target) {int left=0;int right=nums.length-1;while(left<=right){int mid=(left+right)/2;if(nums[mid]>target){right=mid-1;}else if(nums[mid]<target){left=mid+1;}else if(mid==0 || nums[mid-1]!=target){return mid;}else{right=mid-1;}}return -1;}public int searchRangeRight(int[] nums, int target) {int left=0;int right=nums.length-1;while(left<=right){int mid=(left+right)/2;if(nums[mid]>target){right=mid-1;}else if(nums[mid]<target){left=mid+1;}else if(mid==nums.length-1 || nums[mid+1]!=target){return mid;}else{left=mid+1;}}return -1;}
}

 

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

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

相关文章

C++:11---友元函数、友元类

一、友元(friend) 概念:通过友元,打破了类的封装性,可以访问类内的所有成员分类:友元函数、友元类二、友元函数 概念:友元函数是一个普通函数,不属于类,但需要在类内表明友元关系 友元函数可访问类内所有成员,但类不可以访问友元函数…

leetcode75. 颜色分类

给定一个包含红色、白色和蓝色&#xff0c;一共 n 个元素的数组&#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 此题中&#xff0c;我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码…

C++:12---运算符重载

一、概念 对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型重载的运算符是具有特殊名字的函数,该函数也有返回值、参数列表、函数体二、运算符重载的3种实现方式 成员函数:私有、公有、保护都可以友元函数:同上全局函数:只能访问公有的三、运算符重载的…

Redis:03---Redis的启动与配置参数大全

一、Redis的可执行文件当我们安装完Redis之后&#xff0c;src和/usr/local/bin目录下提供了下面这些可执行程序&#xff0c;我们称之为Redis Shell&#xff1a;redis-serverRedis服务器redis-cliRedis命令行客户端redis-benchmarkRedis性能测试工具redis-check-aofRedis AOF持久…

leetcode80. 删除排序数组中的重复项 II

给定一个排序数组&#xff0c;你需要在原地删除重复出现的元素&#xff0c;使得每个元素最多出现两次&#xff0c;返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定 nums [1,1,1,2…

Redis:04---键的基本命令(上)

一、KEYS&#xff1a;全量遍历键KEYS pattern功能&#xff1a;用来获取此数据库中所有的键名注意事项&#xff1a;KEYS命令需要遍历Redis中的所有键&#xff0c;当键的数量较多时会影响性能&#xff0c;不建议在生产环境下使用支持glob风格通配符格式&#xff0c;见下表&#x…

leetcode67. 二进制求和

给定两个二进制字符串&#xff0c;返回他们的和&#xff08;用二进制表示&#xff09;。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a "11", b "1" 输出: "100" 示例 2: 输入: a "1010", b "1011" 输出…

C++:13---继承(单一继承、多重继承、多级继承、菱形继承、虚继承)

一、基类与派生类的概念 基类(父类):在继承关系中处于上层的类派生类(子类):在继承关系中处于下层的类class A;class B;class C:public A //C为A的子类,A为C的父类{};class D:public A,public B //D为A和B的子类,A和B均为D的父类{};二、类派生列表 派生类通过派生类列…

(十三) 深入浅出TCPIP之setsockopt参数详解

在socket编程中我们会经常用到setsockopt这个函数&#xff0c;那么本节我们将对这个函数的参数和使用做说明&#xff1a; 首先看下函数原型&#xff1a; int setsockopt( int socket, int level, int option_name,const void *option_value, size_t &#xff0c;ption_len); 第…

22种编程语言新年快乐

请允许我用22种编程语言&#xff0c;祝大家新年快乐 C语言&#xff1a;printf(“祝大家新年快乐”); C : cout<<“祝大家新年快乐”; OC: NSLog(“祝大家新年快乐”) QBasic : Print “祝大家新年快乐” Asp : Response.Write “祝大家新年快乐” PHP : echo “祝大家新年…

Redis:05---键的基本命令(下) 生存周期

一、设置键生存/过期时间生存时间&#xff08;Time To Live&#xff0c;TTL&#xff09;&#xff1a;在经过指定的秒数或者毫秒数之后&#xff0c;服务器就会自动删除生存时间为0的键过期时间&#xff08;expire time&#xff09;&#xff1a;是一个UNIX时间戳&#xff0c;当键…

数论基础代码合集

欧几里德 #include<iostream> using namespace std; int hcf(int a,int b) {int r0;while(b!0){ra%b;ab;br;}return(a); } lcd(int u,int v,int h) //ua&#xff0c;vb&#xff0c;h为最小公约数hcf(a,b); {return(u*v/h); } int main() {int a,b,x,y;cin>>…

C++:03---引用类型

一、概念 C++中的一种新的变量类型,作用是为变量取别名二、引用规则 引用被创建时必须被初始化(即必须指向一个对象,因此引用一旦被初始化,就不能再指向其他对象)int a = 10; int &p = a; //正确 int &p2; //错误,引用必须初始化引用的数据类型必须与被引用的…

三个博弈基础

&#xff08;一&#xff09;巴什博奕&#xff08;Bash Game&#xff09;&#xff1a;只有一堆n个物品&#xff0c;两个人轮流从这堆物品中取物&#xff0c;规定每次至少取一个&#xff0c;最多取m个。最后取光者得胜。 显然&#xff0c;如果nm1&#xff0c;那么由于一次最…

(十五)nodejs循序渐进-高性能游戏服务器框架pomelo之Protobuf模块

消息压缩 在实际编程中&#xff0c;为了减少数据传输带宽的消耗&#xff0c;提高传输效率&#xff0c;pomelo提供了对消息的压缩&#xff0c;包括基于字典的对route的压缩和基于protobuf的对具体传输数据的压缩。 route压缩 在实际编程中&#xff0c;网络带宽的有效数据负载…

C++:13---多态和虚函数表

多态的意思为“以一个public基类的指针/引用,寻址一个派生类对象”。 “多态”的关键在于通过基类指针或引用调用一个虚函数时,编译时不确定到底调用的是基类还是派生类的函数,运行时才确定。这是如何实现的呢?请看下面的程序,该程序演示了多态类对象存储空间的大小。 #in…

leetcode96. 不同的二叉搜索树 动归vs数学?

给定一个整数 n&#xff0c;求以 1 ... n 为节点组成的二叉搜索树有多少种&#xff1f; 示例: 输入: 3 输出: 5 解释: 给定 n 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 …

Redis:06---数据库管理

一、服务器中的数据库Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中&#xff0c;db数组的每个项都是一个redis.h/redisDb结构&#xff0c;每个redisDb结构代表一个数据库&#xff1a;struct redisServer {// ...redisDb *db; // 一个数组&#…

leetcode95. 不同的二叉搜索树 II

给定一个整数 n&#xff0c;生成所有由 1 ... n 为节点所组成的二叉搜索树。 示例: 输入: 3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种不同结构的二叉搜索树&#xff1a; 1 3 …

在同一局域网下连接共享文件夹失败,提示:你不能访问共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问

1.尝试打开guest访问。 &#xff08;1&#xff09;使用键盘 win R 键&#xff0c;打开运行窗口&#xff0c;并输入 gpedit.msc 打开本地组策略编辑器窗口 &#xff08;2&#xff09;选择计算机配置------->管理模板-------->网络-------->Lanman工作站。 &#…