当前位置: 首页 > news >正文

2024.7.30 搜索插入位置(二分法)

在这里插入图片描述

题解

二分法

left和right标记二分区间
ans标记n,因为存在大于所有数的可能。

var searchInsert = function(nums, target) {const n = nums.length;let left = 0, right = n - 1, ans = n;while (left <= right) {//计算中位数let mid = ((right - left) >> 1) + left;if (target <= nums[mid]) {ans = mid;right = mid - 1;} else {left = mid + 1;}}return ans;
};

代码解释

let mid = ((right - left) >> 1) + left;

为什么算中位数用这种方式,有什么好处?

  • 防止溢出:它避免了 (left + right) / 2 可能产生的整型溢出。
  • 效率较高:位运算在某些编译器和处理器上可能比标准除法更快。
http://www.lryc.cn/news/409906.html

相关文章:

  • Socket通信(C++)
  • 小白学大模型:LLaMA-Factory 介绍与使用
  • java算法day26
  • docker笔记7-dockerfile
  • Spring-cloud Alibaba组件--Dubbo
  • 右值引用--C++11
  • 这样做外贸报价表,客户看了才想下单
  • Swift学习入门,新手小白看过来
  • 【Ant Design Pro】快速上手
  • Hive3:Hive初体验
  • blender顶点乱飞的问题解决
  • Elasticsearch(ES) 集群脑裂
  • spark 3.0.0源码环境搭建
  • 3.3、matlab彩色图和灰度图的二值化算法汇总
  • 新手必看:Elasticsearch 入门全指南
  • 【Linux】TCP全解析:构建可靠的网络通信桥梁
  • 图像处理 -- ISP中的3DNR与2DNR区别及实现原理
  • 硬盘分区读不出来的解决之道:从自救到专业恢复
  • 盘点2024年网上很火的4个语音识别转文字工具。
  • 解决 Git 访问 GitHub 时的 SSL 错误
  • LinuxCentos中安装apache网站服务详细教程
  • LUA脚本改造redis分布式锁
  • web端使用HTML5开发《贪吃蛇》小游戏教程【附源码】
  • Selenium使用教程-Selenium环境搭建与基础操作
  • 1950年-2021年中国历年民航航线里程统计报告
  • 前端了解到框架-网络复习
  • 防火墙——网络环境支持
  • 阅读笔记:明朝那些事儿之拐弯中的帝国
  • React基础知识 精简全面 推荐
  • OV SSL证书申请指南