php网站建设思路方案,中国空间站组合体,wordpress后台登录改地址,Wordpress_视频界面2966 将数组划分为具有最大差值的数组
小白渣翻译#xff1a;
给定一个大小为 n 的整数数组 nums 和一个正整数 k 。 将数组分成一个或多个大小为 3 的数组#xff0c;满足以下条件#xff1a;
nums 的每个元素都应该位于一个数组中。一个数组中任意两个元素之间的差异小…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)了下一面继续 编码道路漫漫只要先看脚下的路徐徐前进即可。