首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2023-07-15:给你一个 非递减 的正整数数组 nums 和整数 K, 判断该数组是否可以被分成一个或几个 长度至少 为

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完整代码如下:

在这里插入图片描述

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Ofb_X0eLiAOig9rsxqrC_Z8Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券