初探二分法

推荐阅读

智能化校园:深入探讨云端管理系统设计与实现(一)
智能化校园:深入探讨云端管理系统设计与实现(二)


文章目录

  • 推荐阅读
    • 题目
    • 解法一
    • 解法二


题目

题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

提示:

  1. 你可以假设 nums 中的所有元素是不重复的。
  2. n 将在 [1, 10000]之间。
  3. nums 的每个元素都将在 [-9999, 9999]之间。

解法一

class Solution {public int search(int[] nums, int target) {for (int i=0;i<nums.length;i++){if (target==nums[i]){return i;}}return -1;}
}

image.png

解法二

看到题目给出的提示,数组为有序数组,数组元素不重复。这些不就是使用二分法的前提条件嘛。

image.png

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

二分法代码模板:

int binarySearch(int [] nums,int target){int  left=0,right=X;//X 根据具体条件更改while(Y){//根据具体情况设定条件int mid=left+(right-left)/2;if(nums[mid]==target){....}else if(nums[mid]<target){left=A;//根据具体条件更改}else if(nums[mid]>target){right=B;//根据具体条件更改}}return ....;
}

在这里插入图片描述

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

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

相关文章

C语言常见面试题:什么是条件编译,条件编译的作用是什么?

条件编译是一种编程技术&#xff0c;它允许程序员根据不同的条件来选择性地编译源代码中的部分内容。条件编译在编译过程中起到了非常重要的作用&#xff0c;它可以根据不同的条件来生成不同的代码&#xff0c;从而实现更加灵活和高效的代码生成。 条件编译的作用主要有以下几…

kotlin中的初始化问题纪录

1. init 代码块的顺序问题 init代码块和成员变量实质上是按先后顺序执行的。若果init{} 中有成员变量使用。要把成员变量放到代码块之前。 2. init代码块之中的函数问题 下面是一段错误的代码&#xff1a; class mkotlin{val info:Stringinit {getInfoMethod()info "adad…

BGP路由反射-数据中心IDC项目经验

一、背景描述 R1,R2,R3在AS200区域内&#xff0c;R1和R2,R1和R3建立OSPF&#xff0c;宣告接口互联. AS200区域内&#xff0c;R1和R2建立IBGP, R1和R3建立IBGP R2和R4建立EBGP, R3和R5建立EBGP。 网络拓扑&#xff1a; 二、故障现象 R1和R2可以收到来自AS100区域R4的E…

nsenter比docker exec更底层的命令

文章目录 nsenter介绍安装方法简单使用 nsenter介绍 nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。典型的用途就是进入容器的网络命令空间。相当多的容器为了轻量级&#xff0c;是不包含较为基础的命令的&#xff0c;比如说ip addr…

系统移植,GNU命令,Uboot移植

一.GNU命令 1、addr2line 把程序地址转换为文件名和行号 做调试 2、ar 建立&#xff0c;修改&#xff0c;提取归档文件 3、Id:GNU arm-none-linux-gnueabi-ld start.o main.o -Tmap.lds -o uart.elf 链接器 4、as 主要用来编译GNU编译器gcc输出的汇编文件&a…

‘HEAD‘ 是 HTTP 请求的一种方法

一、名词解释 ‘HEAD’ 是 HTTP 请求的一种方法&#xff0c;它与 ‘GET’ 方法类似&#xff0c;但有一些关键区别。 当你使用 ‘GET’ 请求时&#xff0c;服务器会返回请求的资源&#xff08;例如 HTML 页面或文件内容&#xff09;。而当你使用 ‘HEAD’ 请求时&#xff0c;服务…

嵌入式-stm32-江科大-EXTI外部中断

一&#xff1a;EXTI外部中断&#xff08;external interrupt&#xff09; 1.1 STM32 中断系统 中断是指在主程序运行过程中&#xff0c;出现了特定的中断触发条件&#xff08;中断源&#xff09;&#xff0c;使得CPU暂停当前的程序&#xff0c;转而去处理中断程序&#xff0c;…

【Rust】第六节:结构体

0 前言 结构体&#xff0c;struct&#xff0c;听到这个名字大家可能会感觉“哇&#xff01;好熟悉&#xff01;”&#xff0c;毕竟在大学时学习c/cpp的时候已经接触过很多次了&#xff0c;实际上也确实很类似&#xff0c;即使有些不同&#xff0c;比如“所有权系统”&#xff…

字符金字塔(C语言刷题)

个人博客主页&#xff1a;https://blog.csdn.net/2301_79293429?typeblog 专栏&#xff1a;https://blog.csdn.net/2301_79293429/category_12545690.html 题目描述 请打印输出一个字符金字塔&#xff0c;字符金字塔的特征请参考样例 输入描述: 输入一个字母&#xff0c;保…

5.6 误差相关统计与计算

文章目录 1、平均值2、首次作为参考基准3、绝对差值4、方差、均方差、CV值4.1 方差&#xff08;variance&#xff09;4.2 均方差、标准差&#xff08;Standard Deviation&#xff09;4.3 CV值 1、平均值 Excel 公式&#xff1a;AVERAGE(C4:C20) 2、首次作为参考基准 Excel 操作…

docker面试题(一)

问题1&#xff1a;Docker的工作原理是什么&#xff1f; 答案1&#xff1a;Docker利用Linux内核的容器化技术&#xff0c;如命名空间&#xff08;namespaces&#xff09;和控制&#xff08;cgroups&#xff09;&#xff0c;来实现应用程序的隔离和封装。它使用镜像作为构建和分…

02.Elasticsearch应用(二)

Elasticsearch应用&#xff08;二&#xff09; 1.ElasticSearch-head 参考链接 https://github.com/mobz/elasticsearch-head 是什么 ElasticSearch可视化工具&#xff0c;跟Kibana差不多 四种运行方式 第一种&#xff1a;使用内置服务器运行 git clone git://github.c…

ITSS服务工程师:开启IT职业生涯的金钥匙

&#x1f525;ITSS是中国电子技术标准化研究院推出的&#xff0c;涵盖了“IT服务工程师”和“IT服务经理”的系列培训。它不仅满足GB/T 28827.1的符合性评估要求&#xff0c;还助力IT服务资质升级。 &#x1f3af;“IT服务工程师”培训从服务技术、服务技巧和服务规范三大板块&…

java复习篇 数据结构:链表第二节 哨兵

目录 单向链表哨兵 初始 头插 思路 代码 尾插 思路 遍历 遍历验证头插 尾插代码 尾插测试 get 思路 代码 测试 insert 思路 代码 测试 remove 移除头结点 提问 移除指定位置 测试 单向链表哨兵 单向链表里面有一个特殊的节点称为哨兵节点&#xff0c;…

ubuntu16程序kill后没有及时释放端口

当你在Ubuntu 16上使用kill命令结束一个程序后&#xff0c;如果该程序正在使用的端口没有被及时释放&#xff0c;可能是因为该程序在被结束时还有连接处于活动状态&#xff0c;系统会等待这些连接自然结束。 如果你想强制快速释放该端口&#xff0c;可以使用以下步骤&#xff…

C# AsyncLocal 是如何实现 Thread 间传值

一&#xff1a;背景 1. 讲故事 这个问题的由来是在.NET高级调试训练营第十期分享ThreadStatic底层玩法的时候&#xff0c;有朋友提出了AsyncLocal是如何实现的&#xff0c;虽然做了口头上的表述&#xff0c;但总还是会不具体&#xff0c;所以觉得有必要用文字图表的方式来系统…

AI时代的创新工具:如何利用AI生成独具个性的XMind思维导图?

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff0c;物联网搬砖工一名&#xff0c;致力于为大家淘出更多好用的AI工具&#xff01; 背景 随着互联网的发展&#xff0c;越来越多的人开始使用Markdown来编写文档。Markdown是一种轻量级的标记语言&#xff0c;它允许人们使…

openssl3.2/test/certs - 031 - purpose variants: clientAuth

文章目录 openssl3.2/test/certs - 031 - purpose variants: clientAuth概述笔记END openssl3.2/test/certs - 031 - purpose variants: clientAuth 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! \file my_openssl_linux_log_doc_031.txt \note openssl3.2/tes…

强化数据资产管理,迎接数据资产 “入表” 新时代

2024年伊始&#xff0c;数据要素产业利好政策密集出台&#xff0c;数据资产“入表”成为了大势所趋。数据要素顶层设计方案加速落地&#xff0c;推动企业数字化转型提档加速&#xff0c;提升数据管理能力、实现数据资产价值成为企业下一阶段核心竞争力构建的关键。 01 数据资产…

pytorch与tensorflow如何选择?

目录 1.动态图和静态图1.1 tensorflow是静态图1.2 pytorch动态图 2. 易用性3. 编程语言4. 性能和扩展性5. 社区支持和生态系统 1.动态图和静态图 1.1 tensorflow是静态图 如上图&#xff1a; 定义计算图&#xff08;公式&#xff0c;包括定义变量x,y ,zx*y&#xff09;给公式…