二分查找题总结
二分查找题总结
- hot100
- 搜索插入位置
- 搜索二维矩阵
- 在排序数组中查找元素的第一个和最后一个位置
- 搜索旋转排序数组
- 寻找旋转排序数组中的最小值
- 寻找两个正序数组的中位数
hot100
搜索插入位置
题目链接:
35.搜索插入位置
代码:
class Solution {public int searchInsert(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 right + 1;}
}
搜索二维矩阵
题目链接:
74.搜索二维矩阵
代码:
class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m = matrix.length, n = matrix[0].length;int l = 0, r = m*n - 1;while (l <= r){int mid = l + (r-l)/2;int row = mid / n;int col = mid % n;if (target == matrix[row][col]) return true;if (target > matrix[row][col]) l = mid + 1;if (target < matrix[row][col]) r = mid - 1;}return false;}
}
在排序数组中查找元素的第一个和最后一个位置
题目链接:
34.在排序数组中查找元素的第一个和最后一个位置
代码:
class Solution {int binarySearch(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){right = mid - 1;}else if (nums[mid] < target){left = mid + 1;}}return -1;}public int[] searchRange(int[] nums, int target) {int index = binarySearch(nums,target);if (index == -1){return new int[]{-1,-1};}int left = index;int right = index;while(left - 1 >= 0 && nums[left] == nums[left - 1]){left --;}while(right + 1 < nums.length && nums[right] == nums[right + 1]){right ++;}return new int[]{left,right};}
}
搜索旋转排序数组
题目链接:
33.搜索旋转排序数组
代码:
class Solution {public int search(int[] nums, int target) {int n = nums.length;if (n == 0) return -1;if (n == 1) return nums[0] == target ? 0:-1;int l = 0, r = n - 1;while (l <= r){int mid = l + (r - l) / 2;if (target == nums[mid]) return mid;if (nums[0] <= nums[mid]){if (nums[0] <= target && target < nums[mid]){r = mid - 1;}else{l = mid + 1;}}else{if (nums[mid] < target && target <= nums[n - 1]){l = mid + 1;}else{r = mid - 1;}}}return -1;}
}
寻找旋转排序数组中的最小值
题目链接:
153.寻找旋转排序数组中的最小值
代码:
class Solution {public int findMin(int[] nums) {int l = 0, r = nums.length - 1;int minn = Integer.MAX_VALUE;while (l <= r) {int mid = l + (r - l) / 2;if (nums[mid] < nums[r]) {minn = Math.min(minn, nums[mid]);r = mid - 1;}else {minn = Math.min(minn, nums[l]);l = mid + 1;}}return minn;}
}
寻找两个正序数组的中位数
题目链接:
4.寻找两个正序数组的中位数
代码:
class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {int m = nums1.length, n = nums2.length;int len = m + n;int left = -1, right = -1;int aStart = 0, bStart = 0;for (int i = 0; i <= len / 2; i ++){left = right;if (aStart < m && (bStart >= n || nums1[aStart] < nums2[bStart])){right = nums1[aStart ++];}else{right = nums2[bStart ++];}}if (len % 2 == 0){return (left + right) / 2.0;}else{return right;}}
}
相关文章:
二分查找题总结
二分查找题总结 hot100搜索插入位置搜索二维矩阵在排序数组中查找元素的第一个和最后一个位置搜索旋转排序数组寻找旋转排序数组中的最小值寻找两个正序数组的中位数 hot100 搜索插入位置 题目链接: 35.搜索插入位置 代码: class Solution {public in…...
仕考网:公务员面试流程介绍
通知进面信息——资格审查——面试签到——抽签候考 面试形式: 面试分为结构化和无领导小组两种形式 1.在结构化面试中,当轮到某位考生时,引导员将在候考室宣布其编号,随后考生跟随引导人员前往考场入口。考生在开始考试时需回…...
(十五)SpringCloudAlibaba-Sentinel持久化到Nacos
前言 在前面我们已经将Sentinel配置的规则持久化到系统的文件中。本章节我们将Sentinel持久化到Nacos中; 传送门(Sentinel数据持久化到文件)https://blog.csdn.net/weixin_45876411/article/details/140742963 默认情况下 Sentinel 只能接收到 Nacos 推送的消息,但…...
GitHub图床
GitHub图床 文章目录 GitHub图床图床介绍Github访问GitHub手动修改hostsgithub520 加速器创建账户创建仓库创建token PicGoTypora 图床介绍 图床 存放图片的地方 为什么设置图床呢 在我认识图床之前, 有一个问题 [^放在typora上面的图片, 其实是一个链接, 并且将图片存放在本地…...
记一次高版本view-design的组件迁移到自身项目的低版本
背景 npm i -S view-design当前老项目使用view-design这个组件库,但是当我们去官网查看该组件库最新版本,竟然发现没有博主想用的image/ImagePreivew这两个基础组件 说实话,有点离谱了哈!! 自己造轮子? …...
QT运行ROS工程
文章目录 使用QT创建ROS工程项目配置修改cmake环境配置运行设置 运行 使用QT创建ROS工程 工程名字和路径 下一步(直接选择默认选项就可以)->完成 完成之后 是这样的 接下来在工作空间里面创建功能包 鼠标选中src点击右键->添加新文件 name::功能包的名字…...
电脑技巧:如何在Win11电脑上调整设置,让屏幕更加护眼?
目录 一、调整屏幕亮度 二、启用夜间模式 三、调整色彩设置 四、使用第三方护眼软件 五、保持良好的用眼习惯 总结 随着长时间使用电脑的人越来越多,护眼问题也变得越来越重要。Win11作为更新的操作系统,提供了更多的设置选项来帮助我们保护眼睛。本文将详细介绍如何在…...
【数据结构】排序算法篇二
【数据结构】排序算法篇二 1. 快速排序(hoare版本)(1)基本思想:(2)动态图解:(3)代码实现:(4)特性总结: 2. 快速…...
python进阶篇-day09-数据结构与算法(非线性结构与排序算法)
非线性结构(树状结构) 特点: 每个节点都可以有n个子节点(后继节点) 和 n个父节点(前驱节点) 代表: 树, 图...... 概述 属于数据结构之 非线性结构的一种, 父节点可以有多个子节点(后续节点) 特点 有且只有1个根节点 每个节点都可以有1个父节点及任意个子节点, 前提: 根节点除…...
线性代数基础
Base 对于矩阵 A,对齐做 SVD 分解,即 U Σ V s v d ( A ) U\Sigma V svd(A) UΣVsvd(A). 其中 U 为 A A T AA^T AAT的特征向量,V 为 A T A A^TA ATA的特征向量。 Σ \Sigma Σ 的对角元素为降序排序的特征值。显然,U、V矩阵…...
LCR 021
题目:LCR 021 解法一:计算链表长度 遍历两次,第一次获取链表长度 L(包括虚拟节点),第二次遍历到第 L-n 个节点(从虚拟节点遍历) public ListNode removeNthFromEnd(ListNode head, …...
【阿雄不会写代码】全国职业院校技能大赛GZ036第四套
也不说那么多了,要用到这篇博客,肯定也知道他是干嘛的,给博主点点关注点点赞!!!这样博主才能更新更多免费的教程,不然就直接丢付费专栏里了,需要相关文件请私聊...
Vue组件:使用$emit()方法监听子组件事件
1、监听自定义事件 父组件通过使用 Prop 为子组件传递数据,但如果子组件要把数据传递回去,就需要使用自定义事件来实现。父组件可以通过 v-on 指令(简写形式“”)监听子组件实例的自定义事件,而子组件可以通过调用内建…...
数据分析-埋点
1、数据埋点的定义 针对特定用户行为或事件进行捕获、处理何发送的相关技术及其实施过程。 2、数据埋点的原理 埋点是数据采集的重要方式。通过在页面上植入代码,监控用户行为(例:页面加载、按钮点击等)。用户一旦触发了该事件,就会根据埋点信息将相关数…...
【文心智能体】通过工作流使用知识库来实现信息查询输出,一键查看旅游相关信息,让出行多一份信心
欢迎来到《小5讲堂》 这是《文心智能体平台》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 创建灵感基本配置头像名称和简介人物设定角色与目标思考路…...
服务器监控工具都是监控服务器的哪些性能和指标
服务器监控工具通常用于确保服务器及其相关服务的正常运行。这些工具可以帮助管理员快速识别并解决问题,从而减少停机时间和性能下降的风险。以下是服务器监控工具通常会监控的一些主要内容: 系统健康状态: CPU使用率 内存(RAM&…...
不小心删除丢失了所有短信?如何在 iPhone 上查找和恢复误删除的短信
不小心删除了一条短信,或者丢失了所有短信?希望还未破灭,下面介绍如何在 iPhone 上查找和恢复已删除的短信。 短信通常都是非正式和无关紧要的,但短信中可能包含非常重要的信息。因此,如果您删除了一些短信以清理 iPh…...
【skyvern 快速上手】一句话让AI帮你实现爬虫+自动化
目录 skyvern介绍主要特点工作流程 部署(重点介绍源码部署)源码部署docker快速部署 运行(基于源码)后端前端 快速使用示例总结 skyvern介绍 Skyvern 是一款利用大语言模型(LLM)和计算机视觉技术来自动化浏…...
【C++ Primer Plus习题】14.1
大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include "wine.h" …...
在Ubuntu上运行QtCreator相关程序
背景:希望尝试在Linux系统上跑一下使用QtCreator相关的程序,因为有一些工作岗位要求有Linux上使用Qt的经验。 (1)我是把Windows上的程序移过来的,Windows上文件名称是不区分大小写的。 而Ubuntu上是区分的 所以一部分头文件需要进行修改&am…...
从零搭建CarSim与Matlab/Simulink联合仿真环境:一个分布式驱动控制的实践案例
1. 为什么需要CarSim与Matlab/Simulink联合仿真 在车辆控制系统开发过程中,工程师们经常面临一个难题:如何在保证安全的前提下,快速验证控制算法的有效性?这就是CarSim与Matlab/Simulink联合仿真大显身手的地方。想象一下…...
Spring Boot项目实战:用ShardingSphere-JDBC 5.3.2搞定PostgreSQL分库分表,附完整配置流程
Spring Boot与ShardingSphere-JDBC深度整合:PostgreSQL分库分表实战指南 当你的应用用户量突破百万级,单表数据量超过千万行时,是否经常遇到查询响应变慢、写入性能下降的问题?作为经历过多次系统扩容的老兵,我想分享一…...
面试题-Mysql篇
什么是存储过程存储过程是一组SQL语句的集合,它们在数据库中预先编译并存储。它们用于封装一组操作,提高性能、减少网络流量,并提供可重用的代码逻辑。存储过程还可以实现数据安全性和数据完整性。mysql如何查询最后一条数据使用ORDER BY根据…...
ESP32智能硬件开发实战:基于MCP协议的AI语音助手全栈指南
ESP32智能硬件开发实战:基于MCP协议的AI语音助手全栈指南 【免费下载链接】xiaozhi-esp32 An MCP-based chatbot | 一个基于MCP的聊天机器人 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 在AIoT(人工智能物联网)…...
告别手动调参!用大津法(OTSU)实现8路灰度传感器的自适应巡线(附完整C代码)
告别手动调参!用大津法实现8路灰度传感器的智能巡线方案 当你在电赛现场调试机器人巡线时,是否经历过这样的场景:刚在A场地调好的阈值参数,换到B场地就完全失灵;上午还能精准巡线的小车,下午因为光照变化就…...
为什么90%的词库转换都会失败?输入法词库迁移的终极解决方案:全方位指南
为什么90%的词库转换都会失败?输入法词库迁移的终极解决方案:全方位指南 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 在数字化时代&#x…...
Wireshark抓包实战:用一道CTF题彻底搞懂IP分片与UDP重组
Wireshark抓包实战:用一道CTF题彻底搞懂IP分片与UDP重组 在网络安全竞赛中,一个看似简单的UDP传输任务可能隐藏着协议层面的精妙设计。去年CyBRICS赛事中的lx100题目就完美诠释了这一点——参赛者需要从相机传输的UDP流量中提取图片,而真正的…...
PUBG罗技鼠标宏:告别压枪困扰的终极解决方案
PUBG罗技鼠标宏:告别压枪困扰的终极解决方案 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中的武器后坐力而烦恼…...
2026年选鱼鹰,哪个厂家更靠谱?一文为你揭晓好用之选!
在水产养殖领域,鱼鹰是一种备受关注的养殖品种,其市场需求也在不断增长。选择一家靠谱的鱼鹰供应厂家至关重要,它不仅关系到鱼鹰的品质和健康,还会影响到养殖的效益和未来发展。在众多的厂家中,济宁百鸿养殖有限公司脱…...
FASTDDS-Python 实战:从零构建分布式通信环境
1. 为什么选择Fast DDS-Python? 在物联网和机器人系统中,设备间的实时通信是个硬需求。想象一下,你正在开发一个智能仓储机器人系统,需要让多台机器人在复杂环境中协同工作。这时候,传统的HTTP请求-响应模式就显得力不…...
