【练习】二分查找

1、704

(1)题目描述

(2)代码实现

package com.hh.practice.leetcode.array.demo_02;public class BinarySearch_704 {public int search(int[] nums, int target) {int i= 0,j = nums.length -1;while (i <= j){int mid = (i+j) >>> 1;if (target < nums[mid]){j = mid - 1;} else if (nums[mid] < target) {i = mid + 1;}else {return mid;}}return -1;}//方式一
//    public int search(int[] nums, int target) {
//        for(int i = 0; i < nums.length; i++){
//            if(target == nums[i]){
//               return i;
//            }
//        }
//        return -1;
//    }
}

2、35

(1)题目描述

(2)代码实现

package com.hh.practice.leetcode.array.demo_02;public class BinarySearch_35 {//方式二public static int searchInsert(int[] arr, int key) {int i = 0;int j = arr.length - 1;while (i <= j) {int mid = (i + j) >>> 1;if (key <= arr[mid]) {j = mid - 1;} else{i = mid + 1;}}return i;}//方式一
//    public int searchInsert(int[] nums, int target) {
//        int low = 0;
//        int high = nums.length - 1;
//
//        while (low <= high) {
//            int mid = (low + high) >>> 1;
//            int midVal = nums[mid];
//
//            if (midVal < target)
//                low = mid + 1;
//            else if (midVal > target)
//                high = mid - 1;
//            else
//                return mid; // target found
//        }
//        //没找到就返回插入点,
//        return low;  // target not found.
//    }
}

3、34

(1)题目描述‘

(2)代码实现

package com.hh.practice.leetcode.array.demo_02;public class BinarySearch_34 {public int[] searchRange(int[] nums, int target) {int[] arr = new int[2];arr[0] = binaryLeft(nums,target);if (arr[0] == -1){arr[1] = -1;} else {arr[1] = binaryRight(nums, target);}return arr;}/*返回最靠左的元素索引*/public int binaryLeft(int[] arr, int key) {int i = 0;int j = arr.length - 1;int candidate = -1;while (i <= j) {int mid = (i + j) >>> 1;if (key < arr[mid]) {j = mid - 1;} else if (key > arr[mid]) {i = mid + 1;} else {candidate = mid;j = mid -1;}}return candidate;}/*返回最靠右的元素索引*/public int binaryRight(int[] arr, int key) {int i = 0;int j = arr.length - 1;int candidate = -1;while (i <= j) {int mid = (i + j) >>> 1;if (key < arr[mid]) {j = mid - 1;} else if (key > arr[mid]) {i = mid + 1;} else {candidate = mid;i = mid +1;}}return candidate;}
}

 


 

本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!

创作不易,如果对你有点帮助的话麻烦点个赞支持一下!

新手小白,欢迎留言指正!

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

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

相关文章

企业网络日益突出的难题与SD-WAN解决方案

随着企业规模的迅速扩张和数字化转型的深入推进&#xff0c;企业在全球范围内需要实现总部、分支机构、门店、数据中心、云等地点的网络互联、数据传输和应用加速。SD-WAN作为当今主流解决方案&#xff0c;在网络效率、传输质量、灵活性和成本等方面远远超越传统的互联网、专线…

利用国产库libhv动手写一个web_server界面(二)

目录 一、配置参数解析与响应 1.读取参数 2.设置参数 3.恢复默认参数 二、整体的界面实现以及交互效果 三、关于yaml文件乱码问题解决 四、参考文章 一、配置参数解析与响应 使用cJSON解析库&#xff0c;解析接收到的JSON数据字段&#xff0c;区别接收到的配置参数是请…

四川易点慧电子商务抖音小店安全:护航您的在线交易之旅

在数字化浪潮席卷全球的今天&#xff0c;电子商务已经成为人们日常生活的重要组成部分。四川易点慧电子商务抖音小店作为新兴的电商平台&#xff0c;以其便捷、高效的特点吸引了众多消费者的目光。然而&#xff0c;随着网络交易的日益频繁&#xff0c;安全问题也日益凸显。本文…

论文笔记:Time Travel in LLMs: Tracing Data Contamination in Large Language Models

iclr 2024 spotlight reviewer评分 688 1 intro 论文认为许多下游任务&#xff08;例如&#xff0c;总结、自然语言推理、文本分类&#xff09;上观察到的LLMs印象深刻的表现可能因数据污染而被夸大 所谓数据污染&#xff0c;即这些下游任务的测试数据出现在LLMs的预训练数据…

Redis客户端介绍及安装

Redis客户端 安装完成Redis&#xff0c;我们就可以操作Redis&#xff0c;实现数据的CRUD了。这需要用到Redis客户端&#xff0c;包括&#xff1a; 命令行客户端图形化桌面客户端编程客户端 1.Redis命令行客户端 Redis安装完成后就自带了命令行客户端&#xff1a;redis-cli&…

并发 MiniHttp 服务器

项目需求 实现一个http 服务器项目&#xff0c;服务器启动后监听80端口的tcp 连接&#xff0c;当用户通过任意一款浏览器访问我们的http服务器&#xff0c;http服务器会查找用户访问的html页面是否存在&#xff0c;如果存在则通过http 协议响应客户端的请求&#xff0c;把页面…

ARM看门狗定时器

作用 在S3C2440A中&#xff0c;看门狗定时器的作用是当由于噪声和系统错误引起的故障干扰时恢复控制器的工作。 也就是说&#xff0c;系统内部的看门狗定时器需要在指定时间内向一个特殊的寄存器内写入一个数值&#xff0c;俗称喂狗。 如果喂狗的时间过了&#xff0c;那么看门…

基于PyTorch神经网络进行温度预测——基于jupyter实现

导入环境 import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch import torch.optim as optim import warnings warnings.filterwarnings("ignore") %matplotlib inline读取文件 ### 读取数据文件 features pd.read_csv(temps.…

数据可视化-ECharts Html项目实战(12)

在之前的文章中&#xff0c;我们深入学习ECharts特殊图表中的矩形树图以及Echarts中高级功能的多图表联动。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 数…

html公众号页面实现点击按钮跳转到导航

实现效果&#xff1a; 点击导航自动跳转到&#xff1a; html页面代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>跳转导航</title><meta name"keywords" conten…

5.2 mybatis之autoMappingBehavior作用

文章目录 1. NONE关闭自动映射2. PARTIAL非嵌套结果映射3. FULL全自动映射 众所周知mybatis中标签< resultMap >是用来处理数据库库字段与java对象属性映射的。通常java对象属性&#xff08;驼峰格式&#xff09;与数据库表字段&#xff08;下划线形式&#xff09;是一 一…

STM32学习和实践笔记(12):蜂鸣器实验

蜂鸣器主要分为两种&#xff0c;一种是压电式的无源蜂鸣器&#xff0c;一种是电磁式的有源蜂鸣器。 有源和无源是指其内部有没有振荡器。 无源的没有内部振荡器&#xff0c;需要输入1.5-5KHZ的音频信号来驱动压电蜂鸣片发声。 有源的内部有振荡器&#xff0c;因此只需要供给…