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

前端算法Hot 100 _二分查找

二分查找

在这里插入图片描述

/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param nums int整型一维数组* @param target int整型* @return int整型*/
function search(nums, target) {// write code hereif (nums.length === 0) return -1;let left = 0;let right = nums.length - 1;//取等于与不取等于(建议取,考虑长度为1)while (left <=right) {let mid = Math.floor((left + right) / 2);let val = nums[mid];if (val === target) return mid;else if (val < target) {left = mid + 1;} else {right = mid-1;}}return -1;
}
module.exports = {search: search,
};

找峰值(⭐)

在这里插入图片描述

step 1:二分查找首先从数组首尾开始,每次取中间值,直到首尾相遇。
step 2:如果中间值的元素大于它右边的元素,说明往右是向下,我们不一定会遇到波峰,但是那就往左收缩区间
step 3:如果中间值小于右边的元素,说明此时往右是向上向上一定能有波峰,那我们往右收缩区间
step 4:最后区间收尾相遇的点一定就是波峰

/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型一维数组 * @return int整型*/
function findPeakElement( nums ) {// write code here//很巧妙想法!!!//找中间点,判断其右侧的值是否递增,递增就向右边找峰值,否则向左侧找let right=nums.length-1;let left=0;while(left<right){let mid=Math.floor((left+right)/2);if(nums[mid]<nums[mid+1]){left=mid+1;}else{right=mid;}}return left;}
module.exports = {findPeakElement : findPeakElement
};

数组中的逆序对(⭐)

在这里插入图片描述

分治

在这里插入图片描述

  • 与归并排序不同,此处要记录count值,要注意自行定义一个mergeSort,且合的过程借助两个指针记录并累加count
  • 核心:count+=leftPart.length-i; //!!!key!!!和过程中了,left已经排序完了,左侧当前及其后面的数都会比右侧当前数大!!!count–,err,没有考虑左侧数组当前后续的值也比此右侧当前值大
/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param nums int整型一维数组* @return int整型*/
function InversePairs(nums) {// write code here//读懂题目,是任意两个前后数字,没有要求是挨着的//基础:取模% 取余///看到nlogn->归并排序(堆几率不大对于前端)//作用域,count是全局状态!!!let count = 0;//分const mergeSort = (nums) => {//分if (nums.length <= 1) return nums;let mid = Math.floor
http://www.xdnf.cn/news/127585.html

相关文章:

  • HTB - BigBang靶机记录
  • C++学习:六个月从基础到就业——STL算法(三)—— 数值算法(上)
  • 深入理解表单---提交用户与网页交互的重要方式:GET 与 POST 的本质区别与应用实践
  • 【C++】入门基础【下】
  • 信息系统项目管理工程师备考计算类真题讲解八
  • rabbitmq安装项目集成
  • 智能清洁机器人中的实时操作系统应用研究
  • Android学习总结之扩展基础篇(一)
  • 动手试一试 Spring Boot默认缓存管理
  • 中央对齐模式1 2与更新中断
  • Apifox 4月更新|Apifox在线文档支持LLMs.txt、评论支持使用@提及成员、支持为团队配置「IP 允许访问名单」
  • 使用setGraphicsEffect重新设置阴影导致程序崩溃的问题
  • SAP SuccessFactors Recruiting and Onboarding The Comprehensive Guide
  • 【oql】spark thriftserver内存溢出,使用oql查询导致oom的sql
  • 覆盖纸(Overlay Paper):装饰材料领域的“隐形冠军”
  • 每日一练(4~24):互质的数【省模拟赛】
  • 【python】解释builtin.py函数为何全是pass
  • Kaamel白皮书:Model Context Protocol (MCP) 隐私安全最佳实践
  • AGP8+ fullMode 完全模式混淆闪退
  • MAC地址攻击和ARP攻击的原理及解决方法
  • nodejs导入文件模块和导入文件夹
  • 研0调研入门
  • 【Vue3 实战】插槽封装与懒加载
  • LJF-Framework 第14章 LjfSecurity适配SpringSecurity
  • springcloud-openfeign
  • 使用钉钉机器人推送系统内部的ERP停机维护公告
  • 微信小程序 tabbar底部导航栏
  • 传统的图像压缩技术(二)
  • mysql——索引事务和JDBC编程
  • 【C++基础知识】namespace前加 inline