小白水平理解面试经典题目_二维数组类LeetCode 2966 Divide Array【排序算法实现】

2966 将数组划分为具有最大差值的数组

小白渣翻译:

给定一个大小为 n 的整数数组 nums 和一个正整数 k 。
将数组分成一个或多个大小为 3 的数组,满足以下条件:

  • nums 的每个元素都应该位于一个数组中。
  • 一个数组中任意两个元素之间的差异小于或等于 k 。

返回包含所有数组的二维数组。如果无法满足条件,则返回空数组。如果有多个答案,则返回其中任何一个。

例子

在这里插入图片描述
在这里插入图片描述

这里是小白理解

在这里插入图片描述
这时候坐在自习室的白月光居然也在看这道题,突然跑来问小白,这题是什么意思啊?

小白:这题目描述很诡异,而且他题目描述居然还多了两个限制,而且还是一个多维,那肯定得用到Arraylist来存储了,但是乍一看,确实不太懂他的意思。

这里我用大家能明白的在描述再描述一下:

就是不管数组nums有多长,但是要满足分配后的每一个小数组的大小是3。另外注意,这个小数组里边的差值 <= k的值。

当然了,作为绅士的小白,肯定是上图让白月光更好理解一下。
在这里插入图片描述

咱们先给上边的数组排个序
在这里插入图片描述
为了继续更好理解,在进行一个分割
在这里插入图片描述
在这里插入图片描述
黑长直OS:小伙子,可以啊,这不仅逻辑感人,美术功底也可以啊,有机会咱们去看看画展吧

真正面试环节

面试官:你可以解答这道”分割数组“的题目吗,看看小伙子你的二维数组处理能力。

小白:嘿嘿,这不巧了么这不是
在这里插入图片描述

public int[][] divideArray(int[] nums, int k) {
        Arrays.sort(nums);
        int[][] ans = new int[nums.length / 3][3];
        for (int i = 0; i < nums.length; i += 3) {
            if (nums[i + 2] - nums[i] > k) {
                return new int[0][0];
            }
            ans[i / 3] = new int[]{nums[i], nums[i + 1], nums[i + 2]};
        }
        return ans;
    }

好了,时间复杂度O(nlogN)了,下一面继续

在这里插入图片描述
编码道路漫漫,只要先看脚下的路,徐徐前进即可。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python打造光斑处理系统6:高斯拟合

文章目录 构建拟合函数数据获取打印信息 光斑处理&#xff1a;python处理高斯光束的图像 光斑处理系统&#xff1a; 程序框架&#x1f31f;打开图像&#x1f31f;参数对话框/伪彩映射&#x1f31f;裁切ROI光强分布 构建拟合函数 scipy中提供了非线性最小二乘回归算法&#x…

创建型模式-单例模式:定义、实现及应用

目录 一、模式定义二、针对问题1.解决的问题2.解决方案3.举个例子4.设计模式适合场景5.实现方式6.优缺点7.与其他模式的关系 三、代码实现 一、模式定义 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型模式&#xff0c;用于限制某个类只能创建一个对象。它提…

CMake Msys2 搭配vscode

(一)MSYS2介绍 MSYS2&#xff08;Minimal SYStem 2&#xff09;是一个集成了大量的GNU工具链、工具和库的开源软件包集合。它提供了一个类似于Linux的shell环境&#xff0c;可以在Windows系统中编译和运行许多Linux应用程序和工具。 MSYS2基于MinGW-w64平台&#xff0c;提供了…

04、全文检索 -- Solr -- 管理 Solr 的 core(使用命令和图形界面创建、删除 core,以及对core 目录下的各文件进行详细介绍)

目录 管理 Solr 的 core创建 Core方式1&#xff1a;solr 命令创建演示&#xff1a;使用 solr 命令创建 Core&#xff1a;演示&#xff1a;命令删除 Core&#xff08;彻底删除&#xff09; 方式2&#xff1a;图形界面创建Web控制台创建CoreWeb控制台删除 Core&#xff08;未彻底…

使用css绘制小三角形

要使用CSS绘制小三角形&#xff0c;您可以使用border属性来设置边框样式。下面是一种常见的绘制小三角形的方法&#xff1a; <style>.box {width: 0;height: 0;/* border-top: 10px solid red; */border-bottom: 10px solid blue;border-left: 10px solid transparent;b…

【Mysql】事务的隔离级别与 MVCC

事务隔离级别 我们知道 MySQL 是一个 C/S 架构的服务&#xff0c;对于同一个服务器来说&#xff0c;可以有多个客户端与之连接&#xff0c;每个客户端与服务器连接上之后&#xff0c;就是一个会话&#xff08; Session &#xff09;。每个客户端都可以在自己的会话中向服务器发…

【算法与数据结构】718、1143、LeetCode最长重复子数组 最长公共子序列

文章目录 一、718、最长重复子数组二、1143、最长公共子序列三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、718、最长重复子数组 思路分析&#xff1a; 第一步&#xff0c;动态数组的含义。 d p [ i ] [ j ] dp[i]…

计算机视觉-PCV包、Vlfeat库、Graphviz库的下载安装配置及问题解决(使用anaconda3 python 3.8.5)

目录 一、PCV包配置 二、Vlfeat配置 三、在PCV包的sift.py文件中对路径进行修改 四、以上步骤所需注意的错误 五、Graphviz配置 一、PCV包配置 1.下载PCV包,点开网址直接下载安装包(不用解压),下载之后将安装包放在任意目录位置https://codeload.github.com/Li-Shu14…

Java_简单实现无头单向非循环链表_简单实现LinkedList

文章目录 一、ArrayList的优缺点二、链表1.链表的概念及结构2.链表的分类1、单向或者双向2、带头或者不带头3、循环或者非循环 三、实现无头单向非循环链表1.定义接口2.定义MySingleList3.成员1、节点类&#xff08;定义在MySingList类里&#xff09;2、头节点引用 4.打印链表实…

【服务器搭建】快速完成幻兽帕鲁服务器的搭建及部署【零基础上手】

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 教程详戳&#xff1a;不需要懂技术&#xff0c;1分钟幻兽帕鲁服…

Datax问题记录

1、同步mysql&#xff1a;OS errno 24 - Too many open files 2023-11-20 12:30:04.371 [job-0] ERROR JobContainer - Exception when job run com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-07], Description:[读取数据库数据失败. 请检查您的…

【Kafka】 幂等和事务详解

目录 幂等性为什么需要幂等性如何实现幂等性使用幂等幂等性的限制条件幂等性的实现原理 事务为什么需要事务开启事务事务保证事务恢复的保证事务原子性的保证事务中 Offset 的提交保证用于事务特性的控制型消息 事务流程事务原理FindCoordinatorRequestInitProducerIdRequest开…

2.2作业

1、写一个宏&#xff0c;可以将一个int型整数的二进制位的奇数位和偶数位交换 2、递归实现字符串逆置 void func (char *src) {if (strlen(src) 0){return;} else{ func(&src[1]);printf("%c", src[0]);} } int main(int argc, const char *argv[]) { char *s …

☻C++ QA

0. 什么是“第一性原理”&#xff1f; 函数指针的定义泛式与原理&#xff1f;联合(union)的原理是怎样的&#xff1f;联合类型对象的指针是什么意思&#xff1f;命名空间在.h和.cpp中怎么定义和使用&#xff0c;是什么原理&#xff1f;静态变量/函数在.h和.cpp中怎么定义和使用…

资源推荐:web js linux windows vm 虚拟机

web js vm list https://bellard.org/jslinux/index.html 可以在在浏览器中运行 X Window 或 Windows 2000、linux 以下为示例&#xff1a; JSLinux - News 从2018-08-18开发更新到2021-01-09 … https://bellard.org/jslinux/news.html faq 常见问题解答 https://bella…

flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用

flv视频格式批量截取封面图&#xff08;不占内存版&#xff09;--其他视频格式也通用 需求&#xff08;实现的效果&#xff09;功能实现htmlcssjs 需求&#xff08;实现的效果&#xff09; 批量显示视频&#xff0c;后端若返回有imgUrl,则直接显示图1&#xff0c; 若无&#xf…

如何使用VSCode上运行Jupyter,详细案例过程出可视化图

Python作为最受AI喜欢的语言之一&#xff0c;我们与大家共同学习下如何在VS Code上运行Jupyter&#xff0c;并且用简单案例实现出图。 环境 VS Code version: 1.80.1 Python: 3.12.0 小白安装过程&#xff1a; 在准备好基础环境&#xff0c;小白心想&#xff0c;AI可是霸占科…

爬虫(二)使用urllib爬取百度贴吧的数据

下一期我就不用urllib来抓取数据了&#xff0c;因为urllib现在已经很少人用&#xff0c;大部分人用得是requests&#xff0c;requests也是基于底层urllib的一个模块。 首先我先来讲一下关于如何使用动态的UA&#xff01; 动态UA就是指在自己创建的一个列表里随机选择一个UA当做…

07 SB3之@HttpExchange(TBD)

HttpExchange是SpringBoot3的新特性. Spring Boot3 提供了新的 HTTP 的访问能力&#xff0c;封装了Http底层细节. 通过接口简化 HTTP远程访问&#xff0c;类似 Feign 功能。 SpringBoot 中定义接口提供 HTTP 服务 --> 框架生成的代理对象实现此接口 --> 框架生成的代理…

RabbitMQ下载与安装

一、Docker安装 1.单机部署 我们在Centos7虚拟机中使用Docker来安装。 1.1.下载镜像 方式一&#xff1a;在线拉取 docker pull rabbitmq:3-management方式二&#xff1a;从本地加载 上传到虚拟机中后&#xff0c;使用命令加载镜像即可&#xff1a; docker load -i mq.ta…
最新文章