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

算法(二分查找)

1.给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:

输入:x = 4
输出:2

示例 2:

输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。

算法原理:我们主要要搞清楚到底怎么划分区间

我们通过实例1和2可以看到 我们要将这个区间分为小于等于 和大于

 我们就使用二分查找的左边界法

package erfen;public class Xpingfang {class Solution {public int mySqrt(int x) {if(x<1)return 0;long left=0,right=x;while(left<right){long mid=left+(right-left+1)/2;if(mid*mid<=x)left=mid;else right=mid-1;}return (int)left;}}
}

2.搜索插入位置

定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2

示例 2:

输入: nums = [1,3,5,6], target = 2
输出: 1

示例 3:

输入: nums = [1,3,5,6], target = 7
输出: 4

提示:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums 为 无重复元素 的 升序 排列数组
  • -104 <= target <= 104

算法原理

我们从例子看 可以把区间分为大于等于区间和小于区间

因此 这里我们就用右端点二分查找法

class Solution {public int searchInsert(int[] nums, int target) {int left=0,right=nums.length-1;if(nums.length==0)return -1;while(left<right){int mid=left+(right-left)/2;if(nums[mid]>=target)right=mid;else left=mid+1;}if(nums[left]<target)return left+1;return left;}
}

相关文章:

算法(二分查找)

1.给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1&#xf…...

运筹学基础(六)列生成算法(Column generation)

文章目录 前言从Cutting stock problem说起常规建模Column generation reformulation 列生成法核心思想相关概念Master Problem (MP)Linear Master Problem (LMP)Restricted Linear Master Problem (RLMP)subproblem&#xff08;核能预警&#xff0c;非常重要&#xff09; 算法…...

[阅读笔记] 电除尘器类细分市场2023年报

0.原始链接&#xff1a; 2023年除尘行业评述及2024年发展展望-北极星大气网 中国环保产业协会 供稿 1.重要信息摘录 市场占有率最大的是电除尘和袋式除尘行业装备产品名录: 国家鼓励发展的重大环保技术装备目录&#xff08;2023年版&#xff09;权威评审机构&#xff1a;…...

Kubernetes学习笔记11

k8s集群核心概念&#xff1a;pod&#xff1a; 在K8s集群中是不能直接运行容器的&#xff0c;K8s的最小调度单元是Pod&#xff0c;我们要使用Pod来运行应用程序。 学习目标&#xff1a; 了解pod概念&#xff1a; 了解查看pod方法 了解创建pod方法 了解pod访问方法 了解删除…...

✌2024/4/3—力扣—无重复字符的最长子串

代码实现&#xff1a; 解法一&#xff1a;暴力法 int lengthOfLongestSubstring(char *s) {int hash[256] {0};int num 0;for (int i 0; i < strlen(s); i) {int count 0;for (int j i; j < strlen(s); j) {if (hash[s[j]] 0) {hash[s[j]];count;num num > cou…...

Tauri 进阶使用与实践指南

Tauri 进阶使用与实践指南 调试技术 在 Tauri 应用开发中&#xff0c;调试分为两大部分&#xff1a;Web 端与 Rust 控制台。 Web 端调试 在 Web 端界面&#xff0c;可以直接采用浏览器内置的开发者工具进行调试。在 Windows 上&#xff0c;可以通过快捷键 Ctrl Shift i 打…...

2024年最新社交相亲系统源码下载

最新相亲系统源码功能介绍 参考&#xff1a;相亲系统源码及功能详细介绍 相亲系统主要功能 &#xff08;已完成&#xff09; 相亲系统登录注册 相亲系统会员列表 相亲系统会员搜索 相亲系统会员详情 相亲系统会员身份认证 - 对接阿里云 相亲系统资源存储 - 对接七…...

git知识

如何将develop分支合并到master分支 #简单版 git checkout master git pull origin master git merge origin/develop # 解决可能的冲突并提交 git push origin master#复杂版 git checkout master # 拉取远程 master 分支的最新代码并合并到本地 git pull origin master # 拉…...

代码随想录算法训练营第三十五天|860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球

代码随想录算法训练营第三十五天|860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球 860.柠檬水找零 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯…...

golang defer实现

derfer : 延迟调用&#xff0c;函数结束返回时执行&#xff0c;多个defer按照先进后出的顺序调用 原理&#xff1a;底层通过链表实现&#xff0c;每次新增的defer调用&#xff0c;通过头插法插入链表&#xff1b;defer执行时&#xff0c;从链表头开始遍历&#xff0c;相当于实…...

数据仓库实践

什么是数据仓库&#xff1f; 数据仓库是一个用于存储大量数据并支持数据分析与报告的系统。它通常用于集成来自不同来源的数据&#xff0c;提供一个统一的视图&#xff0c;以便进行更深入的分析和决策。 数据仓库的主要优势&#xff1f; 决策支持&#xff1a;为企业决策提供可靠…...

深入浅出 -- 系统架构之微服务标准组件及职责

我们来认识一下微服务架构在Java体系中依托哪些组件实现的。 相对于单体架构的简单粗暴&#xff0c;微服务的核心是将应用打散&#xff0c;形成多个独立提供的微服务&#xff0c;虽然从管理与逻辑上更符合业务需要。但微服务架构也带来了很多急需解决的核心问题&#xff1a; 1…...

IP协议中的四大支柱:DHCP、NAT、ICMP和IGMP的功能剖析

DHCP动态获取 IP 地址 我们的电脑通常都是通过 DHCP 动态获取 IP 地址&#xff0c;大大省去了配 IP 信息繁琐的过程。 客户端首先发起 DHCP 发现报文&#xff08;DHCP DISCOVER&#xff09; 的 IP 数据报&#xff0c;由于客户端没有 IP 地址&#xff0c;也不知道 DHCP 服务器的…...

基于Socket简单的UDP网络程序

⭐小白苦学IT的博客主页 ⭐初学者必看&#xff1a;Linux操作系统入门 ⭐代码仓库&#xff1a;Linux代码仓库 ❤关注我一起讨论和学习Linux系统 1.前言 网络编程前言 网络编程是连接数字世界的桥梁&#xff0c;它让计算机之间能够交流信息&#xff0c;为我们的生活和工作带来便利…...

计算机思维

计算机思维是一种运用计算机科学的基础概念和方法来解决问题、设计系统和理解人类行为的思维方式。它包括以下几个方面&#xff1a; 1. 抽象和建模&#xff1a;将复杂的现实问题抽象为计算机可以处理的模型&#xff0c;通过定义对象、属性和关系来构建问题的逻辑结构。 2. 算法…...

如何判断一个linux机器是物理机还是虚拟机

https://blog.csdn.net/qq_32262243/article/details/132571117 第一种方式&#xff1a;dmesg命令 [rootnshqae01adm03 ~]# dmesg | grep -i hypervisor [ 0.000000] Hypervisor detected: Xen PV [ 1.115297] VPMU disabled by hypervisor. 在我的机器上 dmesg也是能够用来判…...

python用requests的post提交data数据以及json和字典的转换

环境&#xff1a;python3.8.10 python使用requests的post提交数据的时候&#xff0c;代码写法跟抓包的headers里面的Content-Type有关系。 &#xff08;一&#xff09;记录Content-Type: application/x-www-form-urlencoded的写法。 import requestsurlhttps://xxx.comheade…...

【Datax分库分表导数解决方法】MySQL_to_Hive

Datax-MySQL_to_Hive-分库分表-数据同步工具 简介&#xff1a; 本文档介绍了一个基于Python编写的工具&#xff0c;用于实现分库分表数据同步的功能。该工具利用了DataX作为数据同步的引擎&#xff0c;并通过Python动态生成配置文件&#xff0c;并调用DataX来执行数据同步任务…...

Vue2 —— 学习(一)

目录 一、了解 Vue &#xff08;一&#xff09;介绍 &#xff08;二&#xff09;Vue 特点 &#xff08;三&#xff09;Vue 网站 1.学习&#xff1a; 2.生态系统&#xff1a; 3.团队 二、搭建 Vue 开发环境 &#xff08;一&#xff09;安装与引入 Vue 1.直接引入 2.N…...

Windows Server 2008添加Web服务器(IIS)、WebDAV服务、网络负载均衡

一、Windows Server 2008添加Web服务器&#xff08;IIS&#xff09; &#xff08;1&#xff09;添加角色&#xff0c;搭建web服务器&#xff08;IIS&#xff09; &#xff08;2&#xff09;添加网站&#xff0c;关闭默认网页&#xff0c;添加默认文档 在客户端浏览器输入服务器…...

哈希冲突实战:用链地址法+表头插入优化你的查找性能(以LeetCode风格题为例)

哈希冲突实战&#xff1a;用链地址法表头插入优化你的查找性能&#xff08;以LeetCode风格题为例&#xff09; 哈希表是算法面试中的常客&#xff0c;但真正能说清楚其底层优化细节的开发者并不多。最近在帮团队面试候选人时&#xff0c;我发现90%的人能说出链地址法的基本概念…...

基于Dify的智能问答系统:从意图识别到规范化回复的全流程设计

1. 从零开始理解Dify智能问答系统 第一次接触Dify时&#xff0c;我完全被它的可视化编排能力惊艳到了。这个平台就像搭积木一样&#xff0c;让不懂代码的产品经理也能设计出复杂的AI应用。举个实际例子&#xff0c;去年我们团队要做一个游泳健身领域的问答助手&#xff0c;传统…...

Java开发必看:解决国密SM2算法报错‘Unknown named curve‘的完整指南(附Bouncy Castle配置)

Java开发实战&#xff1a;国密SM2算法Unknown named curve报错深度解析与Bouncy Castle最佳配置指南 金融级Java应用开发中&#xff0c;国密算法SM2的集成就像在钢筋森林里铺设光纤——看似简单却暗藏技术陷阱。当控制台突然抛出Unknown named curve: 1.2.156.10197.1.301这个看…...

如何快速掌握ViGEmBus虚拟手柄驱动:新手5分钟完全指南

如何快速掌握ViGEmBus虚拟手柄驱动&#xff1a;新手5分钟完全指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 你是否遇到过这样的困扰&#xff1a;心爱的…...

Ostrakon-VL扫描终端实战教程:像素特工式零售图像识别部署指南

Ostrakon-VL扫描终端实战教程&#xff1a;像素特工式零售图像识别部署指南 1. 像素特工终端介绍 想象你是一位未来世界的零售侦探&#xff0c;手持高科技扫描仪在商店里穿梭。Ostrakon-VL扫描终端就是你的数字助手&#xff0c;它能帮你"看"懂货架上的每一个细节。这…...

信息系统项目管理师(高项)高效考证解决方案:一次通关的行动蓝图

一、 认知破局&#xff1a;理解考试本质与核心挑战信息系统项目管理师&#xff08;俗称“高项”&#xff09;是国家软考高级资格&#xff0c;它不仅是职称证书&#xff0c;更是项目投标的硬性门槛&#xff08;集成/软件企业申报资质、投标时项目经理资格必备&#xff09;。其核…...

3大核心策略:构建高效抖音内容采集系统的技术实践

3大核心策略&#xff1a;构建高效抖音内容采集系统的技术实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …...

告别手速焦虑:Python大麦网自动抢票脚本终极指南

告别手速焦虑&#xff1a;Python大麦网自动抢票脚本终极指南 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 还在为心仪演出门票秒光而烦恼吗&#xff1f;每次热门演唱会开票…...

技术Lead:不亲手解决问题,你的位置还稳吗?

做到技术Lead这个位置&#xff0c;很多人开始纠结一件事——到底该不该自己动手&#xff1f;技术Lead的尴尬&#xff0c;其实很具体比如前端设计阶段&#xff0c;团队在讨论一个时序收敛问题&#xff0c;工程师说某条路径的slack是-0.3ns&#xff0c;建议加pipeline。这时候Lea…...

Deepin系统远程桌面实战:从零配置xrdp服务到Windows无缝连接

Deepin系统远程桌面实战&#xff1a;从零配置xrdp服务到Windows无缝连接 在跨平台协作成为常态的今天&#xff0c;远程桌面技术让不同操作系统间的无缝协作成为可能。对于使用Deepin系统的用户而言&#xff0c;如何高效地通过Windows设备远程访问和控制Deepin桌面&#xff0c;是…...