1. 解题思路
这一题思路上来说其实很简单,想清楚这个问题必然是有序排列之后三个三个组成一组即可。
2. 代码实现
给出python代码实现如下:
class Solution:
def divideArray(self, nums: List[int], k: int) -> List[List[int]]:
n = len(nums)
if n % 3 != 0:
return []
nums = sorted(nums)
ans = [[nums[i*3], nums[i*3+1], nums[i*3+2]] for i in range(n // 3)]
return ans if all(x[2]-x[0] <= k for x in ans) else []
提交代码评测得到:耗时828ms,占用内存31.6MB。
文章讲述了如何解决LeetCode问题2966,即在给定有序数组中,将数组划分为具有最大差值不超过k的子数组。提供了一种基于排序和分组的Python代码实现,以及其评测结果。
4万+

被折叠的 条评论
为什么被折叠?



