LeetCode 81. 搜索旋转排序数组 II

news2024/11/19 17:45:59

🌈🌈😄😄

欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 81. 搜索旋转排序数组 II,做好准备了么,那么开始吧。

🌲🌲🐴🐴

一、题目名称

LeetCode 81. 搜索旋转排序数组 II

二、题目要求

三、相应举例

四、限制要求

五、解决办法

六、代码实现


一、题目名称

LeetCode 81. 搜索旋转排序数组 II

二、题目要求

已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。

在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,4,4,5,6,6,7] 在下标 5 处经旋转后可能变为 [4,5,6,6,7,0,1,2,4,4] 。

给你 旋转后 的数组 nums 和一个整数 target ,请你编写一个函数来判断给定的目标值是否存在于数组中。如果 nums 中存在这个目标值 target ,则返回 true ,否则返回 false 。

你必须尽可能减少整个操作步骤。

三、相应举例

示例 1:

输入:nums = [2,5,6,0,0,1,2], target = 0
输出:true


示例 2:

输入:nums = [2,5,6,0,0,1,2], target = 3
输出:false

 

四、限制要求

  • 1 <= nums.length <= 5000
  • -104 <= nums[i] <= 104
  • 题目数据保证 nums 在预先未知的某个下标上进行了旋转
  • -104 <= target <= 104

五、解决办法

二分查找

与以往不同的是,此题数组中的值不必互不相同,而且数组部分有序,故我们需要多添加条件来解题。

出循环条件为nums[mid]==target,若满足则返回true,否则为false。

上述是解决数组中包含重复数字时的解题方法 

六、代码实现

class Solution {
    public boolean search(int[] nums, int target) {

        int n=nums.length;
        if(n==0)
            return false;
        if(n==1)
            return nums[0]==target;
        int left=0,right=n-1;
        while(right>=left){
            int mid=(right-left)/2+left;
            if(nums[mid]==target)
                return true;
            if(nums[mid]==nums[left]&&nums[mid]==nums[right]){
                right--;
                left++;
            }
               
           else if(nums[left] <= nums[mid])
            //左边近似有序
           {
                if(target>=nums[left]&&target<nums[mid])     
                    right=mid-1;
                else 
                    left=mid+1;
           }
            else
            //右边近似有序
            {
                    if (nums[mid] < target && target <= nums[right])
                        left=mid+1;
                    else 
                        right=mid-1;
            }
        
    }
    

        return false;
 

    }
}

 

在判断nums[left] <= nums[mid]时等号可能一时半会不确定要放在哪里,可以先假设,如果放在上述位置正确,则假设成立。

 

 

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

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

相关文章

年后准备换工作的软件测试工程师们,你准备好了吗?

需要严肃说明的是&#xff1a;面试题库作为帮助大家准备面试的辅助资料&#xff0c;但是绝对不能作为备考唯一途径&#xff0c;因为面试是一个考察真实水平的&#xff0c;不是背会了答案就可以的&#xff0c;需要你透彻理解的&#xff0c;否则追问问题答不出来反而减分&#xf…

什么是dapp?如何在web中开发dapp?

web3 “Web3.0”是对“Web2.0”的改进&#xff0c;在此环境下&#xff0c;用户不必在不同中心化的平台创建多种身份&#xff0c;而是能打造一个去中心化的通用数字身份体系&#xff0c;通行各个平台。更像是一种概念吧。 区块链 区块链&#xff08;Blockchain&#xff09;是由…

54-64-k8s-集群监控-高可以用集群-交付部署

54-k8s-集群监控-高可以用集群-交付部署 k8s集群监控 1、概述 一个好的系统&#xff0c;主要监控以下内容 集群监控 节点资源利用率节点数运行Pods Pod监控 容器指标应用程序【程序占用多少CPU、内存】 2、监控平台 使用普罗米修斯【prometheus】 Grafana 搭建监控平台…

JS实现鼠标悬停变色

JS实现鼠标悬停变色 案例池子&#xff1a; JS实现鼠标悬停变色 JavaScript中的排他算法实现按钮单选 JavaScript中的localStorage JavaScript中的sessionStorage JavaScript实现网页关灯效果 JavaScript实现一段时间之后关闭广告 JavaScript实现按键快速获取输入框光标 …

第二证券|紧盯“有诺不行”隐疾 补齐上市公司高质量发展“短板”

有诺不可”的典型事例 “言而有信”是上市公司高质量开展的重要环节。近日&#xff0c;证监会印发的《推动提高上市公司质量三年举动计划&#xff08;2022-2025&#xff09;》&#xff08;下称《举动计划》&#xff09;提出&#xff0c;将着力处理管理领域杰出问题&#xff0c…

(Java)Thymeleaf学习笔记——动力节点

前言 学SpringMVC找课程时就了解到要学习thymeleaf这种Java模板引擎&#xff0c;但本着不用不学的原则就直接跳过&#xff0c;当实践第一个SpringMVC程序helloworld&#xff0c;遇见了thymeleaf&#xff0c;那么就先解决 &#x1f4a1;thymeleaf 知识点&#xff0c;再来学习Sp…

CSS新增样式----圆角边框、盒子阴影、文字阴影

在CSS中新增了三个样式&#xff0c;分别是圆角边框&#xff0c;盒子阴影&#xff0c;文字阴影。 初识圆角边框&#xff1a; border-radius属性用于设置元素的外边框圆角 语法如下&#xff1a; border-radius:length;原理如下&#xff1a; [椭]圆与边框的交集形成圆角效果。…

档案知识:声像档案的数字化处理与保存

声像档案是档案家族中较晚出现的成员&#xff0c;主要包括音像资料、图像资料、图片等&#xff0c;伴随着当今科技的发展进步&#xff0c;声像档案的数字化管理正逐步替代传统声像档案的管理方式&#xff0c;成为当前的发展主流。 虽然声像档案相较于传统文字档案&#xff0c;…

GFS分布式文件系统

GFS分布式文件系统 什么是GFS分布式文件系统 GFS&#xff08;GlusterFS&#xff09; 是一个开源的分布式文件系统。 由存储服务器、客户端以及NFS/Samba 存储网关&#xff08;可选&#xff0c;根据需要选择使用&#xff09;组成。 没有元数据服务器组件&#xff0c;这有助于提…

黑金ZYNQ7100配置HDMI驱动并测试

Linux系统移植系列 Linux系统移植专栏地址 https://blog.csdn.net/qq_41873311/category_12127932.html 一个写了五篇博客&#xff0c;成功在黑金ZYNQ7100搭建了属于我自己的Linux系统 但是缺少显示模块&#xff0c;所以本文就配置个HDMI驱动来完成图像的显示 环境 hdf设计…

N年后牛的数量

1、题目 第一年农场有 1 只成熟的母牛 A&#xff0c;往后的每年&#xff1a; 1&#xff09;每一只成熟的母牛都会生一只母牛 2&#xff09;每一只新出生的母牛都在出生的第三年成熟 3&#xff09;每一只母牛永远不会死 2、思路 举例说明&#xff1a; 可得到递推式为&…

文华财经期货量化策略抄底准确率高的指标公式,逃顶抄底精准共振起涨信号幅图指标

期货指标公式的万变不离...离均线远了就要往均线靠&#xff0c;这就是乖离。 做多的衰竭&#xff0c;做空的无力&#xff0c;也能根据乖离来判断。 量能的重要性不言而喻&#xff0c;他是一切做多做空的力量来源 摒弃了量能的趋势就是没有方向的车&#xff0c;金叉之后也可能突…

C++11 智能指针

文章目录1. 智能指针出现的意义1.1 内存泄漏1.2 智能指针初识2. C标准库中的智能指针2.1 auto_ptr2.2 std::unique_ptr2.3 std::shared_ptr2.4 std::weak_ptr3. 智能指针中的定制删除前言&#xff1a; 智能指针&#xff0c;它是指针嘛&#xff1f;它是一个类具有指针的功能&…

HTML期末学生大作业-拯救宠物网页作业html+css

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Redis主从复制与Cluster集群

目录 一.Redis集群模式 二、Redis 主从复制 2.1 主从复制介绍 2.2 主从复制的作用 2.3 主从复制流程&#xff1a; 三. Redis主从复制搭建 3.1 实验步骤 ​ 3.2 修改master节点配置文件 3.3 修改slave节点的配置文件 3.4 验证主从效果 3.4.1 主节点查看日志&#xff0…

数据图表-FineReport复选按钮控件

1. 概述 1.1 版本 报表服务器版本 功能变更 11.0 -- 1.2 应用场景 1.2.1 填报控件 填报报表中可以通过该控件执行批量选中操作&#xff0c;如下图所示&#xff1a; 1.2.2 参数控件 参数面板处可以通过该控件执行查询操作&#xff0c;如下图所示&#xff1a; 1.3 如何添加…

APP上架需要的准备和流程

一上架iOS应用市场前的准备​ 1.选择适合自己的苹果开发者账号​ (1) 个人账号&#xff08;Individual&#xff09;&#xff1a;费用99美金一年, 该账号在App Store销售者只能显示个人的ID&#xff0c;比如zhitian zhang&#xff0c;单人使用。个人账号只能有一个开发者。100…

护眼灯护眼有效果吗?一文了解护眼灯到底有没有用

关于护眼灯是否对预防近视、保护眼睛有效&#xff0c;很多人都会有怀疑态度&#xff0c;会认为是智商税&#xff0c;其实这也因人而异&#xff0c;有的人眼睛天生不太敏感&#xff0c;所以对护眼灯的光线感知不强&#xff0c;很难体会到实际的作用&#xff1b;有的人也买到较差…

ccf寻宝!大冒险!python满分(敲开心~)

寻宝 大冒险 题目传送&#xff1a;http://118.190.20.162/view.page?gpidT147 思路及代码&#xff1a; 核心点就是哈希。 之前刷的是70分&#xff0c;找不到之前的代码了&#xff0c;大概是建了一个很大的表&#xff0c;然后一点点比较吧。 今天再刷&#xff0c;上来就是…

安装ADDIS

网状meta分析&#xff0c;安装ADDIS 下载ADDIS、java 百度网盘下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/15tqDxXUWZ2q3qOS2Fglvu 提取码&#xff1a;6fyw 配置java环境变量 双击系统变量中的Path 复制百度网盘下载后的jdk-11/bin的路径&#xff0c…