【LeetCode热题100】【二分查找】搜索旋转排序数组

embedded/2024/10/21 7:28:28/

题目链接:33. 搜索旋转排序数组 - 力扣(LeetCode)

同样是要在数组中查找元素,不同的是这次的数组是这样//的,升序数组,但是往前移动了一下,也就是两段升序,456123这样

看了一位天才的思路,把分段升序数组变成单纯的升序数组然后直接二分

因为题目说了元素不超过10000,那么就给第二段升序的部分加上10000,这样就是升序数组了,如果目标元素小于nums[0]说明它在第二段里面,也给它加上10000,不要误会循环加是O(n)的复杂度,只需要在比较的时候相加即可

class Solution {
public:int search(vector<int> &nums, int target) {int left = 0, right = nums.size() - 1;if (target < nums[0])target += 10000;while (left <= right) {int mid = (left + right) / 2;if (nums[mid] < nums[0])nums[mid] += 10000;if (nums[mid] == target)return mid;if (target < nums[mid])right = mid - 1;elseleft = mid + 1;}return -1;}
};


http://www.ppmy.cn/embedded/6566.html

相关文章

Javaweb知识之AJAX的概念的通俗理解(包含axios)

AJAX 一.概念&#xff1a; AJAX&#xff08;Asynchronous JavaScript And XML&#xff09;&#xff1a;异步的JavaScript和XML 异步 JavaScript的理解&#xff1a;就像你给朋友发了一条消息&#xff0c;然后继续做其他事情一样。你不需要等待朋友回复&#xff0c;可以继续做自…

c/c++的关键字 inline 介绍

c/c C和C是两种非常流行的编程语言&#xff0c;它们在许多方面有相似之处&#xff0c;但也存在一些关键的区别。以下是C和C的一些主要特点和差异&#xff1a; C语言的特点&#xff1a; 过程式编程&#xff1a;C是一种过程化的语言&#xff0c;强调过程和函数的使用。 简洁高效…

设计模式之模板方法模式详解(上)

模板方法模式 1&#xff09;概述 1.定义 定义一个操作中算法的框架&#xff0c;而将一些步骤延迟到子类中&#xff0c;模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2.方案 背景&#xff1a;某个方法的实现需要多个步骤&#xff08;类似…

科目一笔记

扣分 目前只有 12 9 6 3 1分。 扣1分的 会车 不按照规定会车&#xff0c; 普倒掉&#xff08;普通路上不按规定掉头&#xff0c;倒车&#xff09; ​ 高速、城市快速路…以外的道路 普通路 ​ 校车…以外的道车 普通车 使用灯光 ​ 需要注意的是只有不按规定使用灯光&…

js 过滤 json 数据

js 过滤 json 数据 一、一维数组过滤1、filter2、map 二、复杂数组过滤三、树形数据过滤四、过滤附件数组 — filter、map、findIndex 一、一维数组过滤 1、filter let arr [{id: 1,name: "张三",age: 18},{id: 2,name: "李四",} ] arr arr.filter(ite…

BaiChuan13B-GPTQ量化详解

知识要点&#xff1a; 1、按照网上搜索的一些代码&#xff0c;如使用auto_gptq原生库进行训练后量化&#xff0c;可能会正常量化&#xff0c;但是在线推理时会出现如找不到bin文件或者tf文件&#xff0c;即模型权重文件&#xff0c;所以和网上大部分代码不同的地方在于&#xf…

【软件工程与实践】(第四版)第6章习题答案详解

第6章 一、填空题二、选择题三、简答题四、实践题 一、填空题 &#xff08;1&#xff09; 编程语言是人与计算机交流的 工具。 &#xff08;2&#xff09; 从语言层次上&#xff0c;编程语言可以分为 低级语言 和 高级语言 两种类型。 &#xff08;3&#xff09; 1960年代出现…

《设计模式之美》第一章 总结

《设计模式之美》第一章 总结 第一章 概述 1.1 为什么学习代码设计 编写高质量的代码应对复杂代码的开发程序员的基本功职业发展的必备技能 1.2 如何评价代码的质量 1.2.1 可维护性 可维护性代码的特性&#xff1a;代码简洁、可读性好、可扩展性好代码分层结构清晰、模块化…