33. 搜索旋转排序数组(LeetCode热题100)

news/2025/2/22 11:02:40

题目来源:

33. 搜索旋转排序数组 - 力扣(LeetCode)

代码实现:

class Solution {
public:
    int search(vector<int>& nums, int target) {
        //闭区间写法
        int n=nums.size();
        int left=0,right=n-1;
        while(left<=right){
            int mid=(left+right)>>1;
            if(target==nums[mid])  return mid;
            if(nums[left]<=nums[mid]){//从left到mid有序
                if(target>=nums[left]&&target<nums[mid]){
                    //target  在这段区间上
                    right = mid-1;//慢慢缩小区间
                }
                else left=mid+1;//不在这段区间上
            }
            else{ //从left到mid无序
                if(target>nums[mid]&&target<=nums[right]){
                    left=mid+1;
                }
                else right=mid-1;
            }
        }
          return -1;
    }
};

题目心得:

  1. 有些做法效率很高,很精妙,但是不具备可学习性,一定要找自己能看得懂的,下次可以自己写出来的

http://www.niftyadmin.cn/n/5862150.html

相关文章

Git笔记汇总,持续更新~

Git 是一个广泛使用的分布式版本控制系统&#xff0c;以下是一些常用 Git 命令的详细介绍&#xff1a; 仓库操作 1. git init 功能&#xff1a;在当前目录下初始化一个新的 Git 仓库。用法&#xff1a; git init示例&#xff1a;在 my_project 目录下初始化一个新的 Git 仓…

C++ 设计模式-策略模式

支付策略 #include <iostream> #include <memory> #include <unordered_map> #include <vector> #include <ctime>// 基础策略接口 class PaymentStrategy { public:virtual ~PaymentStrategy() default;virtual std::string name() const 0;…

Linux驱动开发之音频驱动与基础应用编程

目录 CODEC芯片 音频编码 I2S总线接口 数字音频接口(DAI) 设备树配置 ALSA 音频相关概念 应用程序编写 运行测试 CODEC芯片 音频若想被CPU“听到”&#xff0c;就必须转换为CPU能够“听懂”的语言&#xff0c;即二进制数据的0和1。在信号处理领域&#xff0c;声音是模…

pandas数据存到informix数据库

紧接上文python 连接infomix&#xff0c;结合pandas&#xff0c;补充csdn在这方面的经验 。 由于无法通过sqlalchemy连接数据库ibm的informix数据库。得用jaydebeapi的jar包。 那么这篇文章就是介绍如何将十几万条的pandas的数据存到informix中。 ok&#xff0c;首先我们读取…

【从0做项目】Java音缘心动(1)———项目介绍设计

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 零&#xff1a;项目结果展示 一&#xff1a;音乐播放器Web网页介绍 二&#xff1a;前期准备工作&…

Effective Objective-C 2.0 读书笔记——协议和分类

Effective Objective-C 2.0 读书笔记——协议和分类 文章目录 Effective Objective-C 2.0 读书笔记——协议和分类在分类中添加属性使用 “class-continuation分类” 隐藏实现细节通过协议提供匿名对象 在分类中添加属性 尽管从技术上说&#xff0c;分类里也可以声明属性&…

JAVA JUC 并发编程学习笔记(一)

文章目录 JUC进程概述对比 线程创建线程ThreadRunnableCallable 线程方法APIrun startsleep yieldjoininterrupt打断线程打断 park终止模式 daemon不推荐 线程原理运行机制线程调度未来优化 线程状态查看线程 同步临界区syn-ed使用锁同步块同步方法线程八锁 锁原理Monitor字节码…

如何用deepseek快速生成思维导图和流程图?

一起来看看md格式和mermaid格式&#xff0c;与deepseek的碰撞会产生怎样的魔法吧&#xff01; 1、md格式deepseek&#xff0c;快速生成思维导图 Markdown 是一种轻量级的标记语言&#xff0c;旨在以易读易写的纯文本格式编写文档&#xff0c;并能够轻松转换为结构化的 HTML&a…