当前位置: 首页 > news >正文

中山建设工程招聘信息网站wordpress佣金分成

中山建设工程招聘信息网站,wordpress佣金分成,电子商务网站开发过程,网站建设网站系统选择滑动子数组的美丽值 给你一个长度为 n 的整数数组 nums ,请你求出每个长度为 k 的子数组的 美丽值 。 一个子数组的 美丽值 定义为:如果子数组中第 x 小整数 是 负数 ,那么美丽值为第 x 小的数,否则美丽值为 0 。 请你返回一个包含…

滑动子数组的美丽值

给你一个长度为 n 的整数数组 nums ,请你求出每个长度为 k 的子数组的 美丽值 。
一个子数组的 美丽值 定义为:如果子数组中第 x 小整数 是 负数 ,那么美丽值为第 x 小的数,否则美丽值为 0 。
请你返回一个包含 n - k + 1 个整数的数组,依次 表示数组中从第一个下标开始,每个长度为 k 的子数组的 美丽值 。
子数组指的是数组中一段连续 非空 的元素序列。
示例 1:
输入:nums = [1,-1,-3,-2,3], k = 3, x = 2
输出:[-1,-2,-2]
解释:总共有 3 个 k = 3 的子数组。
第一个子数组是 [1, -1, -3] ,第二小的数是负数 -1 。
第二个子数组是 [-1, -3, -2] ,第二小的数是负数 -2 。
第三个子数组是 [-3, -2, 3] ,第二小的数是负数 -2 。
示例 2:
输入:nums = [-1,-2,-3,-4,-5], k = 2, x = 2
输出:[-1,-2,-3,-4]
解释:总共有 4 个 k = 2 的子数组。
[-1, -2] 中第二小的数是负数 -1 。
[-2, -3] 中第二小的数是负数 -2 。
[-3, -4] 中第二小的数是负数 -3 。
[-4, -5] 中第二小的数是负数 -4 。
示例 3:
输入:nums = [-3,1,2,-3,0,-3], k = 2, x = 1
输出:[-3,0,-3,-3,-3]
解释:总共有 5 个 k = 2 的子数组。
[-3, 1] 中最小的数是负数 -3 。
[1, 2] 中最小的数不是负数,所以美丽值为 0 。
[2, -3] 中最小的数是负数 -3 。
[-3, 0] 中最小的数是负数 -3 。
[0, -3] 中最小的数是负数 -3 。
提示:
n == nums.length
1 <= n <= 105
1 <= k <= n
1 <= x <= k
-50 <= nums[i] <= 50

解题思路

  • 滑动数组 + 暴力枚举

题目是要求计算定长子数组的美丽值,所以采用定长滑动窗口进行枚举

接下来是计算美丽值,也就是找到子数组的第X小的数

由于-50 <= nums[i] <= 50 也就是数组的值范围比较小,所以可以采用一个数组 arr 记录各个数字出现的次数,然后遍历这个数组,找到第X小的数,暴力枚举出美丽值

关于如何找到第X小的数:我们用数组记录各个数字出现的次数时,由于数组的小标大于等于0,所以我们要对数字+50,那么数组的下标-50就是对应的数字。因为第X小的数若是非负数,美丽值则为0,所以只需要计算负数的出现次数,暴力枚举只需要枚举到数组的49下标。在暴力枚举中,我们统计出现的数字的个数 sum,也就是对 arr 的数据进行累加,当 sum 首次大于等于 x 时,此时的下标-50就是第X小的数,也就是美丽值,然后退出循环。若循环正常结束,则美丽值为0。

代码如下↓

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* getSubarrayBeauty(int* nums, int numsSize, int k, int x, int* returnSize){int compare(int* a,int* b){return *a - *b;}int f=-1;int* res = (int*)malloc(sizeof(int)*(numsSize-k+1));int arr[101];memset(arr,0,sizeof(arr));int l=0,r=k-1;*returnSize = numsSize-k+1;for(int i=0;i<k;i++){arr[nums[i]+50]++;}int sum=0;int ff=1;for(int i=0;i<50;i++){sum+=arr[i];if(sum>=x){res[++f] = i-50;ff=0;break;}}if(ff){res[++f] = 0;}while(r<numsSize-1){arr[nums[l]+50]--;l++;r++;arr[nums[r]+50]++;sum=0;ff=1;for(int i=0;i<50;i++){sum+=arr[i];if(sum>=x){res[++f] = i-50;ff=0;break;}}if(ff){res[++f] = 0;}}return res;
}
http://www.yayakq.cn/news/16003/

相关文章:

  • 网站推介方案wordpress 创建一个热门文章分类
  • 给酒吧做网站网站列表页怎么做内链
  • 洛阳网站建设设计公司哪家好品牌如何打造
  • visual studio制作网站开发seo谷歌推广
  • 未备案的网站青岛网站设计哪家好
  • 酒类网站建设策划书软件开发流程详细
  • 贵州网站制作wordpress免费企业主题下载
  • 微网站开发难度动漫设计与制作专业课程
  • wordpress 经典网站做移动网站建设
  • 设计工作室网站源码半夜看的直播app推荐知乎
  • 主体负责人和网站负责人不能是同一个人盐山网站建设价格
  • 做网站一年的费用网站暂时关闭怎么做
  • 苏州浒关网站建设wordpress 拉不到底
  • 美橙极速建站系统找人做网站 源码被盗用
  • seo网站设计哪里好普通网站逻辑设计数据流图
  • 老会计手把手教做帐官方网站彩票网站建设要多少钱
  • 局域网内网站建设的步骤过程南宁手机企业网站定制
  • 网站建设放什么会计科目烟台怎么做网站
  • 设计的网站源代码怎么做免费网站建设策划
  • 做设计开店的网站建设美食网站
  • 高端网站建设 aspx东莞南城网站设计
  • 做网站能用ai做吗做熟食的网站美食网站
  • 网站建设ppt答辩h5响应式网站建设报价
  • discuz可以做商城网站吗页面推广策略有哪些
  • 电子元器件在哪个网站上做域名服务商怎么查询
  • 温州新公司做网站用html做卖珠宝的网站
  • 绍兴做外贸网站的公司企业网站源码交易
  • 安庆市城乡建设网站wordpress 不同页面
  • 成都网站建设开wordpress固定链
  • 管理系统网站加强机构编制网站建设力度