网易首页 > 网易号 > 正文 申请入驻

2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums

0
分享至

2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums和一个从0开始的长度为m的整数数组pattern,其中pattern数组仅包含整数-1、0和1。

一个子数组nums[i..j]的大小为m+1,如果满足以下条件,则我们称该子数组与模式数组pattern匹配:

1.若pattern[k]为1,则nums[i+k+1] > nums[i+k];

2.若pattern[k]为0,则nums[i+k+1] == nums[i+k];

3.若pattern[k]为-1,则nums[i+k+1] < nums[i+k]。

需要计算匹配模式数组pattern的nums子数组的数量并返回。

输入:nums = [1,2,3,4,5,6], pattern = [1,1]。

输出:4。

解释:模式 [1,1] 说明我们要找的子数组是长度为 3 且严格上升的。在数组 nums 中,子数组 [1,2,3] ,[2,3,4] ,[3,4,5] 和 [4,5,6] 都匹配这个模式。

所以 nums 中总共有 4 个子数组匹配这个模式。

答案2024-07-13:

chatgpt

题目来自leetcode3036。

大体步骤如下:

1.在主函数main中,定义了一个nums数组为[1,2,3,4,5,6]和一个模式数组pattern为[1,1]。然后调用countMatchingSubarrays函数,并输出结果。

2.countMatchingSubarrays函数的作用是计算匹配模式数组pattern的nums子数组的数量。它首先将模式数组pattern的长度赋值给m,然后在模式数组末尾添加一个值为2的元素。接着遍历nums数组,将每相邻两个数的大小关系转换为-1、0或1,并存储在pattern数组中。

3.根据Z算法,创建一个数组z用于存储匹配长度。然后利用两个指针l和r,以及i遍历模式数组,并根据当前位置i和匹配长度z[i]更新l、r和z[i]的值,直到找到所有的匹配长度。

4.最后,在z数组中,从第m+1个值开始遍历,如果匹配长度等于模式数组长度m,则将计数器ans加一。

综上所述,总的时间复杂度为O(n)(n为nums数组的长度),总的额外空间复杂度为O(n)。

Go完整代码如下:

packagemain
import(
"fmt"
"cmp"
)
funccountMatchingSubarrays(nums,pattern[]int)(ansint){
m:=len(pattern)
pattern=append(pattern,2)
fori:=1;ipattern=append(pattern,cmp.Compare(nums[i],nums[i-1]))
}
n:=len(pattern)
z:=make([]int,n)
l,r:=0,0
fori:=1;iifi<=r{
z[i]=min(z[i-l],r-i+1)
}
fori+z[i]l,r=i,i+z[i]
z[i]++
}
}
for_,lcp:=rangez[m+1:]{
iflcp==m{
ans++
}
}
return
}
funcmain(){
nums:=[]int{1,2,3,4,5,6}
pattern:=[]int{1,1}
fmt.Println(countMatchingSubarrays(nums,pattern))
}

声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
武汉市武昌区政府副区长,区公安分局局长徐舫拟提名为市州副市州长人选

武汉市武昌区政府副区长,区公安分局局长徐舫拟提名为市州副市州长人选

观星赏月
2026-04-20 18:26:12
3年前就戳穿西贝预制菜没人信,如今被实锤!这个探店博主藏得太深了

3年前就戳穿西贝预制菜没人信,如今被实锤!这个探店博主藏得太深了

马蹄烫嘴说美食
2026-04-15 18:29:48
台军到底能不能打?7万字告诉你答案

台军到底能不能打?7万字告诉你答案

述策
2026-04-20 11:08:57
首都北京市未来10年城市规划...

首都北京市未来10年城市规划...

我不叫阿哏
2026-04-20 18:42:03
贬低全红婵、移居国外、儿子入英国籍?白岩松到底动了谁的蛋糕

贬低全红婵、移居国外、儿子入英国籍?白岩松到底动了谁的蛋糕

许三岁
2026-04-18 09:36:18
老鹰107-106险胜尼克斯,一战揭露了三个不争的事实!

老鹰107-106险胜尼克斯,一战揭露了三个不争的事实!

君子一剑似水流年
2026-04-21 11:40:47
卡拉格:我不认为丢掉英超冠军阿尔特塔就会下课,完全不至于

卡拉格:我不认为丢掉英超冠军阿尔特塔就会下课,完全不至于

懂球帝
2026-04-21 11:35:13
山东乳山银滩“195平米复式房”1万元起拍,已有多人竞价,拍卖公司:产证面积97.94平米,另有赠送面积,非法拍可随时过户

山东乳山银滩“195平米复式房”1万元起拍,已有多人竞价,拍卖公司:产证面积97.94平米,另有赠送面积,非法拍可随时过户

极目新闻
2026-04-19 14:06:31
广东珠海一女神好漂亮, 身高179cm,体重50kg 美的让人移不开眼

广东珠海一女神好漂亮, 身高179cm,体重50kg 美的让人移不开眼

今日搞笑分享
2026-04-06 17:55:16
14亿人都不会忘却!揭开核酸大王张核子的真面具:权力变现大公

14亿人都不会忘却!揭开核酸大王张核子的真面具:权力变现大公

大鱼简科
2026-02-07 09:52:29
中国德比再度上演!斯诺克世锦赛丁俊晖vs赵心童,二人最新回应来了

中国德比再度上演!斯诺克世锦赛丁俊晖vs赵心童,二人最新回应来了

现代快报
2026-04-21 11:24:14
拆迁款分配完,弟弟一家转走980万,我被打发6万,半个月后反转

拆迁款分配完,弟弟一家转走980万,我被打发6万,半个月后反转

枫红染山径
2026-04-21 08:01:15
价格狂飙6倍!日本连夜求购遭中方出口管制,高端制造全线崩盘?

价格狂飙6倍!日本连夜求购遭中方出口管制,高端制造全线崩盘?

墨兰史书
2026-04-20 13:25:03
张本兄妹改名风波再升级,韩媒强烈批评,这就是狠毒的创姓改称

张本兄妹改名风波再升级,韩媒强烈批评,这就是狠毒的创姓改称

明天后天大后天
2026-04-21 08:18:54
李湘母女现身长沙小区,沉默走路不拍照,低调得让人意外

李湘母女现身长沙小区,沉默走路不拍照,低调得让人意外

枫尘余往逝
2026-04-20 20:58:54
这才是宋美龄和继子蒋经国的一张真实合影,都是真人的容貌

这才是宋美龄和继子蒋经国的一张真实合影,都是真人的容貌

喜欢历史的阿繁
2026-04-16 11:17:28
花旗:如果霍尔木兹海峡中断再持续一个月 油价将达到110美元

花旗:如果霍尔木兹海峡中断再持续一个月 油价将达到110美元

财联社
2026-04-21 03:34:04
对不起,我弃剧了!《八千里路云和月》越看越离谱,导演真有你的

对不起,我弃剧了!《八千里路云和月》越看越离谱,导演真有你的

青橘罐头
2026-04-20 22:16:47
女孩在行李箱上写字,全网狂赞:这才是中国人刻在骨子里的浪漫!

女孩在行李箱上写字,全网狂赞:这才是中国人刻在骨子里的浪漫!

中国艺术家
2026-04-14 05:23:31
蓝眼北京人控诉陈丽华20余年,比女首富更该铭记

蓝眼北京人控诉陈丽华20余年,比女首富更该铭记

老蝣说体育
2026-04-19 17:40:22
2026-04-21 12:20:49
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1182文章数 65关注度
往期回顾 全部

科技要闻

重磅官宣:库克卸任,特努斯接任苹果CEO

头条要闻

7岁男孩高烧40℃浑身"黑化"面临截肢 只因父母1个疏忽

头条要闻

7岁男孩高烧40℃浑身"黑化"面临截肢 只因父母1个疏忽

体育要闻

“被优化”8年后,国乒方博决定换一条路重新上场

娱乐要闻

周润发时隔16年再卖楼,变现数亿资产

财经要闻

减速机订单已排到明年!

汽车要闻

把天门山搬进厂?开仰望U8冲上45度坡的那刻 我腿软了

态度原创

本地
艺术
房产
公开课
军事航空

本地新闻

春色满城关不住|白鹃梅浪漫盛放,吴山藏了一片四月雪

艺术要闻

任伯年写竹,真带劲

房产要闻

大规模商改住!海口西海岸,这波项目要赢麻了!

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

特朗普:美舰向伊朗货船开火炸出个洞

无障碍浏览 进入关怀版