网络科技 NEWS
你的位置:上海亚马逊网店美工 > 网络科技 > 美工招聘 2024-07-13: 用go语言, 给定一个从0开始的长度为n的整数数组nums
美工招聘 2024-07-13: 用go语言, 给定一个从0开始的长度为n的整数数组nums
发布日期:2024-07-17 09:15    点击次数:183

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

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]

需要计算匹配模式数组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完整代码如下:

package mainimport("fmt""cmp")func countMatchingSubarrays(nums, pattern []int)(ans int){ m :=len(pattern) pattern =append(pattern,2)for i :=1; i

在这里插入图片描述美工招聘

特别声明:以上内容(如有图片或视频亦包括在内)来源于网络,不代表本网站立场。本网站仅提供信息存储服务。如因作品内容、版权和其他问题需要同我们联系的,请联系我们及时处理。联系方式:451255985@qq.com,进行删除。