leetcode面试题 10.03. 搜索旋转数组(二分法)

搜索旋转数组。给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详。请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。

示例1:

输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5
输出: 8(元素5在该数组中的索引)

代码

class Solution {public int search(int[] arr, int target) {int l=0,n=arr.length,r=n-1;while (l<=r){int mid=(r-l)/2+l;if (arr[l]<arr[mid])//左边升序{if(arr[l]<=target&&target<=arr[mid])r=mid;else l=mid+1;}else if(arr[l]>arr[mid])//左边不是升序{if(arr[l]<=target||target<=arr[mid])r=mid;else l=mid+1;}else if(arr[l]==arr[mid]){if (arr[l]!=target)l++;else return l;}}return -1;}
}

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

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

相关文章

MSSQL → 02:数据库结构

一、数据库的组成 在SQL Server 2008中&#xff0c;用户如何访问及使用数据库&#xff0c;就需要正确了解数据库中所有对象及其设置。数据库就像一个容器&#xff0c;它里面除了存放着数据的表之外&#xff0c;还有视图、存储过程、触发器、约束等数据库对象。数据库管理的核心…

JAVA拳皇_拳皇(Java简单的小程序)代码实例|chu

刚开始学习Java&#xff0c;看完老九君的视频根据他的内容敲的代码&#xff0c;感觉还挺有成就感的&#xff0c;毕竟刚学习Java。package helloasd;import java.util.*; public class hellojava { public static void main(String[] args) { Scanner input new Scanner(System…

mySQL教程 第9章 触发器

第9章 触发器 入的新数据放到new表&#xff0c;删除的数据放到old表。 准备本章学习环境 连接数据库schoolDB&#xff0c;删除表TStudent&#xff0c;TScore和Tsubject中的所有数据。 delete from TStudent; delete from TScore; delete from TSubject; 向学生表插入两条记录 i…

vue使用python_如何使用Python和Vue创建两人游戏

vue使用pythonby Neo Ighodaro由新Ighodaro 如何使用Python和Vue创建两人游戏 (How to create a two-player game with Python and Vue) In this tutorial, we will create a realtime tic-tac-toe game using Python and Pusher channels. Here’s a demo of how the game wi…

掩码图制作photoshop__新手用

1.首先你得有一张图&#xff0c;比如这样的&#xff1a; 2.用PS打开他 3.左边工具栏里&#xff08;快速选择工具W&#xff09;&#xff0c;选想显示的部分 4.ctrlc复制一下&#xff0c;新建一张黑底图粘贴上去或者白底图时选中显示区即花瓣右键反向右键填充成黑色 5.菜单栏->…

leetcode287. 寻找重复数(二分法)

给定一个包含 n 1 个整数的数组 nums&#xff0c;其数字都在 1 到 n 之间&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。假设只有一个重复的整数&#xff0c;找出这个重复的数。 示例 1: 输入: [1,3,4,2,2] 输出: 2 代码 class Solution {…

os-enviroment

pip3 install PyUserInput ping 是不带协议的转载于:https://www.cnblogs.com/liuweimingcprogram/p/10957592.html

java 压缩 乱码_如何解决java压缩文件乱码问题

用java来打包文件生成压缩文件&#xff0c;有两个地方会出现乱码&#xff1a;内容的中文乱码问题&#xff1a;修改sun的源码。使用开源的类库org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry&#xff0c;这两个类ant.jar中有&#xff0c;可以下载使用即可…

Unity3D手机斗地主游戏开发实战(02)_叫地主功能实现

大体思路 前面我们实现了点击开始游戏按钮&#xff0c;系统依次给玩家发牌的逻辑和动画&#xff0c;并展示当前的手牌。这期我们继续实现接下来的功能--叫地主。 1.首先这两天&#xff0c;学习了DOTween&#xff0c;这是一个强大的Unity动画插件&#xff0c;大家可以参考&#…

TensorFlow 学习(十)—— 工具函数

1. 基本 tf.clip_by_value() 截断&#xff0c;常和对数函数结合使用 # 计算交叉熵crose_ent -tf.reduce_mean(tf.log(y_*tf.clip_by_value(y, 1e-10, 1.))) a tf.reshape(tf.range(6, dtypetf.float32), [2, 3]) tf.clip_by_value(a, 2.5, 4.5) # 将值限定在 2.5 …

delphi5开发人员指南_非设计人员的网页设计开发人员指南

delphi5开发人员指南I created my first website as a school project when I was 14. The task was simple: create a very basic site including some text, images, and a table. My usual attitude to school projects was to completely forget about them and later come…

leetcode1292. 元素和小于等于阈值的正方形的最大边长(二分法+前缀和)

给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold。 请你返回元素总和小于或等于阈值的正方形区域的最大边长&#xff1b;如果没有这样的正方形区域&#xff0c;则返回 0 。 示例 2&#xff1a; 输入&#xff1a;mat [[2,2,2,2,2],[2,2,2,2,2],[2,2,2,2,2],[2,2,2…

java 反射 获取成员_java 反射获取成员

package com.wxjaa; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; public class TestReflect { public static void main(String[] args) throws Exception { // getDeclaredField 可以获取私有成员&#xff0c; …

Koa 中实现 chunked 数据传输

有关于 Transfer-Encoding:chunked 类型的响应&#xff0c;参见之前的文章HTTP 响应的分块传输。这里看 Koa 中如何实现。 Koa 中请求返回的处理 虽然官方文档有描述说明不建议直接调用 response.write&#xff1a; Bypassing Koas response handling is not supported. Avoid …

git 短写设置_如何在短短几分钟内设置一个Git客户端

git 短写设置Today we’re going to talk about Git. You’re going to learn what Git is and how to set up a Git client on your computer.今天我们将讨论Git。 您将学习什么是Git&#xff0c;以及如何在计算机上设置Git客户端。 什么是Git&#xff1f; (What is Git?) I…

P1977 出租车拼车

P1977 出租车拼车 题目背景 话说小 x 有一次去参加比赛&#xff0c;虽然学校离比赛地点不太远&#xff0c;但小 x 还是想坐 出租车去。大学城的出租车总是比较另类&#xff0c;有“拼车”一说&#xff0c;也就是说&#xff0c;你一个人 坐车去&#xff0c;还是一堆人一起&#…

leetcode1011. 在 D 天内送达包裹的能力(二分查找)

传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天&#xff0c;我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。 返回能在 D 天内将传送带上的所有包裹送达的船的最低运载…

java集合概念_JAVA集合概念

Java集合是使程序能够存储和操纵元素不固定的一组数据。 所有Java集合类都位于java.uti包中。与Java数组不同&#xff0c;Java集合中不能存放基本数据类型&#xff0c;只能存放对象的引用。但是在JDK5.0以后的版本当中&#xff0c;JAVA增加了“自动装箱”和“自动拆箱”的机制&…

项目计划总结

项目计划总结 任务 日期 听课&#xff08;min&#xff09; 编程&#xff08;min&#xff09; 阅读课本&#xff08;min&#xff09; 日总结&#xff08;min&#xff09; 2017/3/13 120 70 190 2017/3/14 80 80 2017/3/15 90 30 120 2017/3/16 …

HTML5新特性之Mutation Observer

Mutation Observer&#xff08;变动观察器&#xff09;是监视DOM变动的接口。当DOM对象树发生任何变动时&#xff0c;Mutation Observer会得到通知。 要概念上&#xff0c;它很接近事件。可以理解为&#xff0c;当DOM发生变动会触发Mutation Observer事件。但是&#xff0c;它与…