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

LeetCode算法心得——限制条件下元素之间的最小绝对差(TreeSet)

大家好,我是晴天学长,今天用到了Java一个非常实用的类TreeSet,能解决一些看起来棘手的问题。


1 )限制条件下元素之间的最小绝对差

在这里插入图片描述


2) .算法思路

  • 初始化变量:
  • n为列表nums的大小。
    min为整型最大值,用于记录最小的差的绝对值。
    创建一个TreeSet类型的变量treeSet,用于存储当前nums[0, i-x]范围内的元素。
  • 通过循环遍历列表nums,从索引x开始迭代,直到列表结束。
  • 在循环内部执行以下操作:
  • 获取索引i-x处的元素,并将其添加到treeSet中。
  • 获取索引i处的元素,并与treeSet中的元素进行比较。
    使用treeSet的ceiling方法查找大于等于当前元素的最小元素,并将其赋值给celling。
  • 如果celling不为null,则计算当前元素与celling的差的绝对值,并更新min为较小值。
    使用treeSet的floor方法查找小于等于当前元素的最大元素,并将其赋值给floor。
  • 如果floor不为null,则计算当前元素与floor的差的绝对值,并更新min为较小值。
    循环结束后,返回min作为结果,表示列表nums中与给定整数x的差的绝对值最小的值。

3).代码示例

class Solution {public int minAbsoluteDifference(List<Integer> nums, int x) {int n = nums.size();int min = Integer.MAX_VALUE;//存入当前nums[0,i-x]的元素TreeSet<Integer> treeSet = new TreeSet<>();for (int i = x; i <n ; i++) {int temp = nums.get(i-x);treeSet.add(temp);//比较int k = nums.get(i);Integer celling = treeSet.ceiling(k);if (celling!= null) {min = Math.min(min, Math.abs(k - celling));}Integer floor = treeSet.floor(k);if (floor!= null) {min = Math.min(min, Math.abs(floor - k));}}return min;}

4).总结

  • TreeSet的理解(红黑树)

相关文章:

LeetCode算法心得——限制条件下元素之间的最小绝对差(TreeSet)

大家好&#xff0c;我是晴天学长&#xff0c;今天用到了Java一个非常实用的类TreeSet&#xff0c;能解决一些看起来棘手的问题。 1 &#xff09;限制条件下元素之间的最小绝对差 2) .算法思路 初始化变量&#xff1a;n为列表nums的大小。 min为整型最大值&#xff0c;用于记录…...

MySQL表的基础操作(crud)

1. 新增&#xff08;Create&#xff09; insert into 表名 values (值, 值…); 此处列出的这些值,的数目和类型要和表的列相匹配。 -- 在student 表中插入学号1&#xff0c;姓名zhangsan的数据 insert into student values(1, zhangsan); -- 指定列插入 insert into student …...

vue中的activated和deactivated

目录 一、简介二、使用 一、简介 当页面被keep-alive缓存下来的时候&#xff0c;vue提供两个钩子函数 activated被 keep-alive 缓存的组件激活时调用。deactivated被 keep-alive 缓存的组件失活时调用。 当keepalive页面缓存&#xff0c;有activated钩子和created钩子函数时 …...

unity 发布报错 The type or namespace name `UnityEditor‘ could not be found.

引用了UnityEditor的内容&#xff0c;发布当然会报错啦 加上宏判断就好啦...

在ubuntu中将dict.txt导入到数据库sqlite3

将dict.txt导入到数据库 #include <head.h> #include <sqlite3.h> int do_insert(int i,char *str,sqlite3 *db); int main(int argc, const char *argv[]) {//创建泵打开一个数据库sqlite3 *db NULL;if(sqlite3_open("./my.db",&db) ! SQLITE_OK){…...

nginx 代理postgresql

首先&#xff0c;Nginx为我们的数据库增加了额外的安全层。Nginx提供了一整套的选项&#xff0c;这使得管理访问和保护数据库变得很容易。例如&#xff0c;我们可以配置为只有一小部分IP地址可以访问数据库。 PostgreSQL不使用HTTP或HTTPS&#xff0c;而是使用一个新块儿strea…...

小程序 CSS-in-JS 和原子化的另一种选择

小程序 CSS-in-JS 和原子化的另一种选择 小程序 CSS-in-JS 和原子化的另一种选择 介绍快速开始 pandacss 安装和配置 0. 安装和初始化 pandacss1. 配置 postcss2. 检查你的 panda.config.ts3. 修改 package.json 脚本4. 全局 css 注册 pandacss5. 配置的优化与别名 weapp-pand…...

flutter项目 环境搭建

开发flutter项目 搭建工具环境 flutter项目本身 所需开发工具环境 flutter 谷歌公司开发 系统支持库 镜像库 搭建流程&#xff1a; flutter 官网&#xff1a; https://flutter.dev/community/china //步骤1 .bash_profile touch .bash_profile pwd /Users/haijunyan open ~ e…...

PG-DBA培训12:PostgreSQL物理备份与恢复实战

一、风哥PG-DBA培训12&#xff1a;PostgreSQL物理备份与恢复实战 课程目标&#xff1a; 本课程由风哥发布的基于PostgreSQL数据库的系列课程&#xff0c;本课程属于PostgreSQL备份恢复与迁移升级阶段之PostgreSQL物理备份与恢复实战&#xff0c;学完本课程可以掌握&#xff1…...

饿了么大数据开发凉经

1 一个mapreduce进程会启动多少map进程多少reduce进程* 1&#xff09;map数量由处理的数据分成的block数量决定default_num total_size / split_size; 2&#xff09;reduce数量为job.setNumReduceTasks(x)中x 的大小。不设置的话默认为 1。 2 讲下shuffle的过程 shuffle分为…...

前端安全:XSS 与 CSRF 安全防御

在当今数字化的时代&#xff0c;前端安全性变得愈发重要。跨站脚本攻击&#xff08;XSS&#xff09;和跨站请求伪造&#xff08;CSRF&#xff09;是常见的前端安全威胁&#xff0c;但通过一些简单的防御策略&#xff0c;我们可以有效地保护我们的应用程序和用户信息。本文将为您…...

应用层读取wfp防火墙阻断记录

前言 之前的文档中&#xff0c;描写了如何对WFP防火墙进行操作[链接在此]&#xff0c;这篇文档中&#xff0c;描述如何获取WFP防火墙进行阻断的操作记录。 需要注意的坑点 使用FWPM_NET_EVENT_TYPE获取防火墙日志时&#xff0c;需要注意&#xff0c;只有丢弃和内核丢弃&…...

web基础和tomcat的安装,部署jpress应用

目录 1. 简述静态网页和动态网页的区别。 2. 简述 Webl.0 和 Web2.0 的区别。 3. 安装tomcat8&#xff0c;配置服务启动脚本&#xff0c;部署jpress应用。 1. 简述静态网页和动态网页的区别。 【1】定义区别 请求响应信息&#xff0c;发给客户端进行处理&#xff0c;由浏览…...

idea git命令使用

这个标签标识单签分支&#xff1a;&#xff08;标签图标&#xff09; 标识关联分支&#xff1a;&#xff08;五角星&#xff09; 本地切换分支&#xff1a;如当前分支是dev ,git branch 显示的是dev ,然后通过 git checkout -b release 切换到release分支 git checkout re…...

软件测试技术之单元测试—工程师 Style 的测试方法

什么是单元测试&#xff1f; Wikipedia 对单元测试的定义&#xff1a; 在计算机编程中&#xff0c;单元测试&#xff08;Unit Testing&#xff09;又称为模块测试&#xff0c;是针对程序模块&#xff08;软件设计的最小单位&#xff09;来进行正确性检验的测试工作。 在实际…...

C#学习....

1.基础 //引用命名空间using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;//项目名或者命名空间 namespace _01_MY_First_Demo {//Program类class Program{//程序的主入口或者Main函数static void Main(S…...

C语言暑假刷题冲刺篇——day2

目录 一、选择题 二、编程题 &#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;C语言每日一练 ✨其他专栏&#xff1a;代码小游戏C语言初阶&#x1f91d;希望作者的文章能对你…...

springcloud3 hystrix实现服务降级的案例配置2

一 服务降级的说明 1.1 服务降级说明 "服务器忙&#xff0c;请稍后在试"不让客户达等待&#xff0c;立即返回一个友好的提示。 1.2 服务降级的触发情况 1.程序运行异常&#xff1b; 2.超时&#xff1b; 3.服务熔断触发服务降级&#xff1b;4 .线程池/信号量打…...

第 3 章 稀疏数组和队列(1)

3.1 稀疏 sparsearray 数组 3.1.1先看一个实际的需求 编写的五子棋程序中&#xff0c;有存盘退出和续上盘的功能。 分析问题: 因为该二维数组的很多值是默认值 0.因此记录了很多没有意义的数据.->稀疏数组 3.1.2基本介绍 当一个数组中大部分元素为 0&#xff0c;或者为同…...

7-10 奇偶分家

分数 10 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 给定N个正整数&#xff0c;请统计奇数和偶数各有多少个&#xff1f; 输入格式&#xff1a; 输入第一行给出一个正整N&#xff08;≤1000&#xff09;&#xff1b;第2行给出N个非负整数&#xff0c;以空格分隔。 输…...

MASA模组中文汉化包:让技术模组真正为你所用

MASA模组中文汉化包&#xff1a;让技术模组真正为你所用 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Minecraft技术模组的英文界面而头疼吗&#xff1f;当你在使用Litematica进…...

【免费下载】 新概念英语第三册资源集合

新概念英语第三册资源集合 【下载地址】新概念英语第三册资源集合 新概念英语第三册资源集合 项目地址: https://gitcode.com/open-source-toolkit/8a5ad 资源介绍 本仓库提供了一系列新概念英语第三册&#xff08;New Concept English 3&#xff09;的资源文件&#x…...

别再死记硬背!用Python+Verilog双视角图解2ASK/2FSK调制解调原理

PythonVerilog双视角图解2ASK/2FSK调制解调原理 通信工程的学习者常常陷入理论公式与硬件实现之间的认知断层。当教科书上的数学表达式突然变成硬件描述语言时&#xff0c;那种手足无措的感觉我深有体会——三年前第一次接触Verilog实现调制解调时&#xff0c;盯着代码里那些分…...

SpringBoot开发秘籍【个人八股】

介绍一下 SpringBoot&#xff1f; Spring Boot极大地简化了 Spring 应用的开发和部署过程。 以前我们用 Spring 开发项目的时候&#xff0c;需要配置一大堆 XML 文件&#xff0c;包括 Bean 的定义、数据源配置、事务配置等等&#xff0c;非常繁琐。而且还要手动管理各种 jar 包…...

专业级LaTeX排版:深度解析中国科学技术大学学位论文模板括号使用的最佳实践

专业级LaTeX排版&#xff1a;深度解析中国科学技术大学学位论文模板括号使用的最佳实践 【免费下载链接】ustcthesis LaTeX template for USTC thesis 项目地址: https://gitcode.com/gh_mirrors/us/ustcthesis 在学术论文写作中&#xff0c;细节决定专业水准。中国科学…...

高性能Go Web框架Volo:设计原理、核心功能与生产实践

1. 项目概述&#xff1a;一个高性能的Go语言Web框架最近在折腾一个需要处理高并发请求的API服务&#xff0c;选型时又一次把目光投向了Go生态。说实话&#xff0c;Go的Web框架选择不少&#xff0c;从轻量级的Gin、Echo&#xff0c;到功能更全的Beego、Iris&#xff0c;各有各的…...

扛住十万并发的“冷面保安”:一文扒透限流的四大经典算法与代码实战

在高并发架构中&#xff0c;如果说缓存和 MQ 是替服务器扛伤害的“防弹衣”&#xff0c;那么限流&#xff08;Rate Limiting&#xff09;就是守在系统大门外的“冷面保安”。他的核心逻辑极其冷酷&#xff1a;不管外面排队的人有多急&#xff0c;只要超过了系统的最大接待能力&…...

如何用韭菜盒子打造你的VSCode投资信息中心:5大实用功能深度体验

如何用韭菜盒子打造你的VSCode投资信息中心&#xff1a;5大实用功能深度体验 【免费下载链接】leek-fund :chart_with_upwards_trend: 韭菜盒子VSCode插件&#xff0c;可以看股票、基金、期货等实时数据。 LeekFund turns your VS Code and Cursor into a real-time stock, fun…...

互联网大厂 Java 求职面试全景:从音视频场景到微服务架构的深入探讨

互联网大厂 Java 求职面试全景&#xff1a;从音视频场景到微服务架构的深入探讨 在互联网大厂的招聘中&#xff0c;Java 开发者的面试不仅技术含量高&#xff0c;还充满了戏剧性。今天&#xff0c;我们将通过一位求职者燕双非与面试官的对话&#xff0c;带你走进这个复杂而有趣…...

保姆级教程:手把手教你用Amlogic刷机工具给中兴B863AV3.2T盒子刷当贝桌面(附短接神器使用心得)

中兴B863AV3.2T盒子刷机全流程实战指南&#xff1a;从拆机到当贝桌面的完美蜕变 第一次接触电视盒子刷机时&#xff0c;那种既兴奋又忐忑的心情我至今记忆犹新。手里拿着价值不过百元的中兴B863AV3.2T盒子&#xff0c;却像捧着一个未知的宝藏——既期待通过刷机解锁它的全部潜能…...