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

青州住房和城乡建设网站专业精准网络营销推广

青州住房和城乡建设网站,专业精准网络营销推广,浙江东南网架公司,wordpress会员 主题一、题目 给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空),使得剩余元素的 和 能被 p 整除。 不允许 将整个数组都移除。 请你返回你需要移除的最短子数组的长度,如果无法满足题目要求,返回 -1…

一、题目

给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空),使得剩余元素的 和 能被 p 整除。 不允许 将整个数组都移除。

请你返回你需要移除的最短子数组的长度,如果无法满足题目要求,返回 -1 。

子数组 定义为原数组中连续的一组元素。
在这里插入图片描述
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/make-sum-divisible-by-p/description/

二、C++解法

我的思路及代码

我的方法时间复杂度太高,导致不能通过测试用例
采用前缀和的思路,然后从头开始用不同的窗口大小对数组进行遍历,窗口内的元素即为被删除的元素,直到最后剩下的数组元素和可以被整除返回当前的窗口大小,否则返回 -1。由于本题目只需要判断是否可以被整除,所以在前缀和中我们可以简化存储的数据,每次可以存储取余后的数据。

class Solution {
public:int minSubarray(vector<int>& nums, int p) {int size = nums.size();int prefixSum[size+1];int ans=1;prefixSum[0] = 0;for(int i=1;i<nums.size()+1;i++){prefixSum[i] = (prefixSum[i-1]+nums[i-1])%p;}if(prefixSum[size]%p==0)return 0;while(ans<size+1){for(int j=ans;j<size+1;j++){if((prefixSum[size]-(prefixSum[j]-prefixSum[j-ans]))%p==0)return ans;}ans++;}return -1;}
};
  • 时间复杂度:O(n2),其中 n 是数组 nums 的长度
  • 空间复杂度:O(n),数组需要 O(n) 的空间

官方参考代码

前缀和+哈希表

在这里插入图片描述

  • 时间复杂度:O(n),其中 n 是数组 nums 的长度。遍历数组 nums 需要 O(n) 的时间
  • 空间复杂度:O(n),保存哈希表需要 O(n) 的空间
http://www.jinmujx.cn/news/106659.html

相关文章:

  • 建网站外包公司seo营销
  • 网站迁移后 域名seo推广平台
  • 中国建设人才网信息网站谷歌账号注册入口官网
  • 做的比较好的教育网站网址查询注册信息查询
  • php网站开发教程网做网络推广一个月的收入
  • 重庆智能网站建设哪里有sem网站推广怎么做
  • 怎么做论坛的网站吗seo优化报价
  • 珠海教育局系统网站厦门关键词优化网站
  • 购物网站排名 2019网站平台搭建
  • 常用网站logo免费的网站域名查询565wcc
  • 绍兴网站开发口碑营销经典案例
  • 天津建设工程信息网中标常州百度seo排名
  • 邢台网站建设哪里有seo刷排名公司
  • 长沙关键词自然排名seo优化广告
  • 论坛网站制作费用搜狗网站收录入口
  • 制作网站哪里做b站怎么推广
  • 做独立外贸网站流程百度推广费
  • 广州网站建设品牌seo优化软件
  • 建立网站 多少钱做网站
  • 站长是什么职位网络推广方法大全
  • 集团做网站优势今日头条新闻发布
  • 成都公司网站制作正规的微信推广平台
  • 如何查询网站是哪家公司做的seo在哪可以学
  • 手机网站横竖屏google推广有效果吗
  • 做商城网站怎么做软件定制开发平台
  • 网站做rss wordpress青岛网站优化
  • 响应式网站制作教程电商网站入口
  • 陕西网站开发公司通过qq群可以进行友情链接交换
  • 开个网站做代理服务器百度云客服人工电话
  • 镇江市建设工程安全监督站网站b站推广网站2024年