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

【数据结构】二分查找-LeftRightmost

查找:

Leftmost(最左侧重复元素)

package 二分查找;public class BinarySearch {public static void main(String[] args) {// TODO Auto-generated method stub}public static int binarySearchBasic(int[] a,int target) {int i=0,j=a.length-1; //设置指针初值int candidate=-1;while(i<=j) { //范围有内容int m=(i+j)>>>2;if(target<a[m]) {j=m-1;}else if(target>a[m]) {i=m+1;}else {candidate=m;j=m-1;     //找最左的元素}}return candidate;}}

Rightmost(最右侧重复元素)

package 二分查找;public class BinarySearch {public static void main(String[] args) {// TODO Auto-generated method stub}public static int binarySearchBasic(int[] a,int target) {int i=0,j=a.length-1; //设置指针初值int candidate=-1;while(i<=j) { //范围有内容int m=(i+j)>>>2;if(target<a[m]) {j=m;}else if(target>a[m]) {i=m+1;}else {candidate=m;i=m+1;     //找最右的元素}}return candidate;}}

插入:

插入位置(>=target的最靠左索引位置)

package 二分查找;public class BinarySearch {public static void main(String[] args) {// TODO Auto-generated method stub}public static int binarySearchBasic(int[] a,int target) {int i=0,j=a.length-1; //设置指针初值while(i<=j) { //范围有内容int m=(i+j)>>>2;if(target<a[m]) {j=m-1;}else {j=m-1;     //找最左的元素}}return i;}}

 Rightmost(<=target的最靠右索引位置)

package 二分查找;public class BinarySearch {public static void main(String[] args) {// TODO Auto-generated method stub}public static int binarySearchBasic(int[] a,int target) {int i=0,j=a.length-1; //设置指针初值int candidate=-1;while(i<=j) { //范围有内容int m=(i+j)>>>2;if(target<a[m]) {j=m;}else{i=m+1;}}return j;}}

http://www.dtcms.com/a/195016.html

相关文章:

  • AWS Elastic Beanstalk控制台部署Spring极简工程(LB版)
  • 若依框架的Excel导出功能
  • 前端流行框架Vue3教程:18. _组件数据传递
  • LIIGO ❤️ RUST 12 YEARS
  • git相关配置
  • EJS教程
  • Pyhton训练营打卡Day27
  • 03、基础入门-SpringBoot的大时代背景
  • Java8到24新特性整理
  • Mac安装Navicat16
  • Linux运行时的参数、命令、网络、磁盘参数和日志监控
  • 产品经理入门——认识产品经理
  • 数据库--向量化基础
  • 大模型相关技术综述
  • IEEE PRMVAI 2025 IEEE PRMVAI 探索人工智能在基础设施建设应用与运维中的新挑战
  • Nextjs首屏加载速度性能从80分优化到98分
  • Python OOP核心技巧:如何正确选择实例方法、类方法和静态方法
  • 【C++】15.并发支持库
  • QML 属性动画、行为动画与预定义动画
  • Flask框架搭建
  • AI编程赛道的思考:构建商业闭环Build your business,而非仅仅是应用not only build an app
  • 嵌入式学习笔记 - STM32 ADC 模块工作模式总结
  • 基于stm32f103c8t6的宠物仿声系统管理设计
  • 大模型,为什么需要分阶段学习?
  • 桌面端截长图/滚动截图:图像融合拼接关键算法
  • 【LeetCode 热题 100】动态规划 系列
  • 【Reality Capture 】02:Reality Capture1.5中文版软件设置与介绍
  • 【风控】用户特征画像体系
  • 序列dp常见思路总结
  • idea中Lombok失效的解决方案