D.二分查找-进阶——658. 找到 K 个最接近的元素

题目链接:658. 找到 K 个最接近的元素(中等)

算法原理:

解法一:排序

19ms击败13.08%

时间复杂度O(NlogN)

这个解法其实挺暴力的,直接用把arr全扔链表里,然后按照题目要求把链表排序,最后取出前K个即可,别忘了返回前排个序

解法二:双指针+二分查找

3ms击败100.00%

时间复杂度O(NlogN)

利用题目给的arr已升序排序的条件,可根据x把arr分成两部分,前一部分都<x,后一部分都≥x,我们可以只用一次二分查找即可,先确定right,那么left就是right-1,确定right用到求最左端点模型👇

优选算法-二分:18.在排序数组中查找元素的第一个和最后一个位置

然后通过移动left和right确定一个[left+1,right-1]区间,这个区间内的元素即答案

如何移动呢?👇

如果left越界:left<0,只能right++

如果right越界:right>=arr.length,只能left--

都不越界就按题意来移动:

如果x和left的差<=x和right的差,就left--,因为差值相同时,题目规定取小的

如果x和left的差>x和right的差,就right++

Java代码:

class Solution { //解法一:排序 public List<Integer> findClosestElements(int[] arr, int k, int x) { List<Integer> list=new ArrayList<>(); for(int a:arr) list.add(a); Collections.sort(list,new Comparator<Integer>(){ @Override public int compare(Integer a,Integer b){ if(Math.abs(x-a)!=Math.abs(x-b)) return Math.abs(x-a)-Math.abs(x-b); else return a-b; } }); List<Integer> ret=list.subList(0,k); Collections.sort(ret); return ret; } }
class Solution { //解法二:双指针+二分查找 public List<Integer> findClosestElements(int[] arr, int k, int x) { int right=binarySearch(arr,x); int left=right-1; //维护[left,right]作为结果区间 while(k-->0){ if(left<0) right++; else if(right>=arr.length) left--; else if(x-arr[left]<=arr[right]-x) left--; else right++; } List<Integer> ret=new ArrayList<>(); for(int i=left+1;i<right;i++) ret.add(arr[i]); return ret; } public int binarySearch(int[] arr,int x){ //最左端点模型 int left=0,right=arr.length-1; while(left<right){ int mid=left+(right-left)/2; if(arr[mid]<x) left=mid+1; else right=mid; } return left; } }

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

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

相关文章

Java SpringBoot+Vue3+MyBatis 抗疫物资管理系统系统源码|前后端分离+MySQL数据库

&#x1f4a1;实话实说&#xff1a;有自己的项目库存&#xff0c;不需要找别人拿货再加价&#xff0c;所以能给到超低价格。摘要 新冠疫情爆发以来&#xff0c;全球范围内对防疫物资的需求急剧增加&#xff0c;如何高效、精准地管理抗疫物资成为各级政府和医疗机构面临的重大挑…

【2025最新】基于SpringBoot+Vue的学生网上请假系统管理系统源码+MyBatis+MySQL

&#x1f4a1;实话实说&#xff1a;有自己的项目库存&#xff0c;不需要找别人拿货再加价&#xff0c;所以能给到超低价格。摘要 随着信息化技术的快速发展&#xff0c;传统纸质请假流程已无法满足现代高校管理的需求。学生请假流程繁琐、审批效率低下、数据统计困难等问题日益…

gpt-oss-20b-WEBUI实战:云端10分钟部署,2块钱玩一下午

gpt-oss-20b-WEBUI实战&#xff1a;云端10分钟部署&#xff0c;2块钱玩一下午 你是不是也遇到过这样的场景&#xff1f;团队里有人用AI写产品文案&#xff0c;几分钟就输出一整套卖点提炼、用户话术和推广标题&#xff0c;效率高得离谱。而你还卡在“这个功能怎么描述更吸引人…

BGE-M3一键启动:语义搜索实战指南(附避坑技巧)

BGE-M3一键启动&#xff1a;语义搜索实战指南&#xff08;附避坑技巧&#xff09; 1. 引言 1.1 业务场景与技术背景 在当前信息爆炸的时代&#xff0c;高效、精准的语义搜索已成为智能应用的核心能力之一。无论是知识库问答系统、推荐引擎还是文档检索平台&#xff0c;背后都…

DeepSeek-R1-Distill-Qwen-1.5B高效运维:日志监控与性能分析实战

DeepSeek-R1-Distill-Qwen-1.5B高效运维&#xff1a;日志监控与性能分析实战 1. 引言&#xff1a;轻量级大模型的运维挑战与机遇 随着边缘计算和本地化AI部署需求的增长&#xff0c;轻量级大模型正成为开发者和运维工程师关注的焦点。DeepSeek-R1-Distill-Qwen-1.5B 作为一款…

如何高效批量抠图?试试CV-UNet大模型镜像,本地部署秒级出图

如何高效批量抠图&#xff1f;试试CV-UNet大模型镜像&#xff0c;本地部署秒级出图 1. 背景与需求&#xff1a;AI抠图的效率革命 在电商、广告设计、内容创作等领域&#xff0c;图像背景移除是一项高频且耗时的任务。传统依赖Photoshop等专业工具的手动抠图方式&#xff0c;不…

Qwen3-VL-WEB保姆级教程:多语言文本识别实战应用

Qwen3-VL-WEB保姆级教程&#xff1a;多语言文本识别实战应用 1. 引言 1.1 业务场景描述 在当今全球化背景下&#xff0c;跨语言信息处理已成为企业数字化转型中的关键需求。无论是跨境电商的商品标签识别、国际文档的自动化归档&#xff0c;还是多语种用户界面的内容提取&am…

Qwen3-Embedding-0.6B最佳实践:云端部署省时省力

Qwen3-Embedding-0.6B最佳实践&#xff1a;云端部署省时省力 你是否也遇到过这样的科研困境&#xff1f;实验室GPU资源紧张&#xff0c;排队等上好几天才能跑一次任务&#xff1b;项目进度卡在数据预处理环节&#xff0c;团队协作效率低下。尤其是在做社会舆情分析这类需要批量…

GPT-OSS-20B-WEBUI操作手册:管理员后台管理功能

GPT-OSS-20B-WEBUI操作手册&#xff1a;管理员后台管理功能 1. 概述与部署准备 随着开源大模型生态的快速发展&#xff0c;GPT-OSS-20B作为OpenAI社区推动的重要项目之一&#xff0c;凭借其强大的语言理解与生成能力&#xff0c;正在被广泛应用于研究、教育及企业级推理服务场…

从零部署高精度中文ASR|科哥FunASR镜像全解析

从零部署高精度中文ASR&#xff5c;科哥FunASR镜像全解析 1. 引言&#xff1a;为什么选择科哥定制版FunASR&#xff1f; 在语音识别&#xff08;ASR&#xff09;技术快速发展的今天&#xff0c;构建一个高精度、低延迟、易用性强的本地化中文语音识别系统已成为智能硬件、数字…

Qwen2.5-7B模型优化:内存访问模式改进

Qwen2.5-7B模型优化&#xff1a;内存访问模式改进 1. 引言 1.1 技术背景与挑战 大型语言模型&#xff08;LLM&#xff09;在推理过程中对显存带宽和内存访问效率极为敏感&#xff0c;尤其是在处理长序列生成任务时。Qwen2.5-7B-Instruct作为通义千问系列中参数规模为76亿的指…

UI-TARS-desktop入门实战:Qwen3-4B-Instruct模型基础功能体验

UI-TARS-desktop入门实战&#xff1a;Qwen3-4B-Instruct模型基础功能体验 1. UI-TARS-desktop简介 Agent TARS 是一个开源的多模态 AI Agent 框架&#xff0c;致力于通过融合视觉理解&#xff08;Vision&#xff09;、图形用户界面操作&#xff08;GUI Agent&#xff09;等能…

Hunyuan-HY-MT1.5-1.8B实操:chat_template自定义教程

Hunyuan-HY-MT1.5-1.8B实操&#xff1a;chat_template自定义教程 1. 引言 1.1 项目背景与学习目标 HY-MT1.5-1.8B 是腾讯混元团队推出的一款高性能机器翻译模型&#xff0c;基于 Transformer 架构构建&#xff0c;参数量达 1.8B&#xff08;18亿&#xff09;&#xff0c;专为…

YOLO26适合Jetson?嵌入式部署可行性分析

YOLO26适合Jetson&#xff1f;嵌入式部署可行性分析 随着边缘计算和智能视觉应用的快速发展&#xff0c;将高性能目标检测模型部署到嵌入式设备&#xff08;如NVIDIA Jetson系列&#xff09;已成为工业检测、智能监控、机器人导航等场景的核心需求。YOLO26作为Ultralytics最新…

学生党福音!VibeThinker-1.5B帮你刷题提分

学生党福音&#xff01;VibeThinker-1.5B帮你刷题提分 在大模型参数动辄上百亿的今天&#xff0c;一个仅15亿参数的小型语言模型却在数学与编程推理任务中崭露头角——这正是微博开源推出的 VibeThinker-1.5B。它不仅训练成本低至7800美元&#xff0c;还能在AIME、LiveCodeBen…

体验AI不花冤枉钱:云端GPU按需计费,用多少付多少

体验AI不花冤枉钱&#xff1a;云端GPU按需计费&#xff0c;用多少付多少 作为一名在AI领域摸爬滚打十多年的技术老兵&#xff0c;我太理解教学场景下的痛点了。你是不是也遇到过这种情况&#xff1a;想让学生体验最新的大模型技术&#xff0c;但学校机房的设备还停留在"上…

Proteus汉化补丁使用指南:实战案例演示流程

让 Proteus 说中文&#xff1a;手把手教你安全完成汉化&#xff0c;告别英文障碍你有没有过这样的经历&#xff1f;打开 Proteus 准备画个电路图&#xff0c;点开“Design”却不知道对应“设计”还是“原理图”&#xff1b;想找个单片机模型&#xff0c;在元件库里翻来覆去搜不…

Qwen3-4B节省40%能耗:低精度推理部署实战评测

Qwen3-4B节省40%能耗&#xff1a;低精度推理部署实战评测 1. 背景与选型动机 随着大模型在实际业务场景中的广泛应用&#xff0c;推理成本和能效问题日益突出。尽管模型性能不断提升&#xff0c;但高算力消耗、长延迟和高功耗成为制约其落地的关键瓶颈。尤其在边缘设备或资源…

I2C硬件滤波对信号影响:实战案例分析去抖设计

I2C硬件滤波实战解析&#xff1a;如何用“守门员”机制驯服噪声&#xff0c;保障通信稳定 在嵌入式系统的设计中&#xff0c;IC总线就像一条低调却无处不在的“信息小道”。它布线简单、成本低廉&#xff0c;常被用于连接温度传感器、EEPROM、电源管理芯片等外围设备。然而&…

开发者必看:Qwen3Guard-Gen-WEB镜像快速部署入门教程

开发者必看&#xff1a;Qwen3Guard-Gen-WEB镜像快速部署入门教程 在AI应用日益普及的今天&#xff0c;内容安全审核已成为各类生成式模型落地过程中不可忽视的关键环节。尤其在用户输入不可控、输出需合规的场景下&#xff0c;如何高效识别并拦截潜在风险内容&#xff0c;成为…