2023-07-15:给你一个 非递减 的正整数数组 nums 和整数 K,
判断该数组是否可以被分成一个或几个 长度至少 为 K 的 不相交的递增子序列。
输入:nums = [1,2,2,3,3,4,4], K = 3。
输出:true。
答案2023-07-15:
大体步骤如下:
1.初始化计数变量 和最大计数变量 ,初始值都为 1。
2.从索引 1 开始遍历数组 :
• 如果 不等于 ,说明遇到了一个新的递增序列,更新 为之前的计数 和 中的较大值,并将 重置为 1。
• 否则,递增序列继续,将 自增 1。
3.遍历结束后,再次更新 为最后一个递增序列的计数 和 中的较大值。
4.判断长度为 除以 后是否大于等于 ,如果是,返回 ;否则,返回 。
5.在 函数中,定义数组 和整数 。
6.调用函数 并将结果赋给变量 。
7.输出结果 。
时间复杂度: 遍历数组 的时间复杂度为 O(n),其中 n 是数组 的长度。 因此,整个算法的时间复杂度为 O(n)。
空间复杂度: 算法使用了常数级别的额外空间,不随输入规模变化,所以空间复杂度为 O(1)。
go完整代码如下:
在这里插入图片描述rust完整代码如下:
在这里插入图片描述c++完整代码如下:
在这里插入图片描述c完整代码如下:
在这里插入图片描述
领取专属 10元无门槛券
私享最新 技术干货