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

做的网站能撤掉吗/樱桃电视剧西瓜视频在线观看

做的网站能撤掉吗,樱桃电视剧西瓜视频在线观看,网站建设与制作的流程,企业如何做好网站的seo优化文章目录 题目解析方法一:滑动窗口方法二:哈希表 前缀和附Java代码 力扣题目:将x减到0的最⼩操作数 题目解析 方法一:滑动窗口 算法思路: 题⽬要求的是数组「左端右端」两段连续的、和为 sum(nums) - x 的最⻓数组。…

文章目录

  • 题目解析
    • 方法一:滑动窗口
    • 方法二:哈希表 + 前缀和
    • 附Java代码

力扣题目:将x减到0的最⼩操作数

题目解析

在这里插入图片描述

方法一:滑动窗口

算法思路:
题⽬要求的是数组「左端+右端」两段连续的、和为
sum(nums) - x
的最⻓数组。此时,就是熟
悉的「滑动窗⼝」问题了。

 class Solution 
{public:int minOperations(vector<int>& nums, int x) 
{int sum = 0;for(int a : nums) sum += a;int target = sum - x;// 
细节问题if(target < 0) return -1;int ret = -1;for(int left = 0, right = 0, tmp = 0; right < nums.size(); right++){tmp += nums[right]; // 
进窗⼝while(tmp > target) // 
判断tmp -= nums[left++]; // 
出窗⼝if(tmp == target) // 
更新结果ret = max(ret, right - left + 1);}if(ret == -1) return ret;else return nums.size() - ret;}};

方法二:哈希表 + 前缀和

我们可以将问题转换为求中间连续子数组的最大长度,使得子数组的和为 x=sum(nums)−x。

定义一个哈希表 vis,其中 vis[s] 表示前缀和为 s 的最小下标。

遍历数组 nums,对于每个元素 nums[i],我们先将 nums[i] 加到前缀和 s 上,如果哈希表中不存在 s,则将其加入哈希表,其值为当前下标 i。然后我们判断 s−x 是否在哈希表中,如果存在,则说明存在一个下标 j,使得 nums[j+1,…i] 的和为 x,此时我们更新答案的最小值,即 ans=min(ans,n−(i−j))。

遍历结束,如果找不到满足条件的子数组,返回 −1,否则返回 ans。

class Solution {
public:int minOperations(vector<int>& nums, int x) {x = accumulate(nums.begin(), nums.end(), 0) - x;unordered_map<int, int> vis{{0, -1}};int n = nums.size();int ans = 1 << 30;for (int i = 0, s = 0; i < n; ++i) {s += nums[i];if (!vis.count(s)) {vis[s] = i;}if (vis.count(s - x)) {int j = vis[s - x];ans = min(ans, n - (i - j));}}return ans == 1 << 30 ? -1 : ans;}
};

附Java代码

class Solution {public int minOperations(int[] nums, int x) {int n = nums.length;int sum = Arrays.stream(nums).sum();if (sum < x) {return -1;}int right = 0;int lsum = 0, rsum = sum;int ans = n + 1;for (int left = -1; left < n; ++left) {if (left != -1) {lsum += nums[left];}while (right < n && lsum + rsum > x) {rsum -= nums[right];++right;}if (lsum + rsum == x) {ans = Math.min(ans, (left + 1) + (n - right));}}return ans > n ? -1 : ans;}
}
http://www.whsansanxincailiao.cn/news/30237114.html

相关文章:

  • 济南做门户网站开发公司/百度seo优化推广
  • 江苏建科建设监理有限公司网站/seo实战技巧
  • 昆山网站建设熊掌号/制作链接的app的软件
  • 延庆县专业网站制作网站建设/网店推广运营
  • 微网站建设申请报告/发稿
  • 怎么样建设一个电影网站/如何自己做一个网址
  • wordpress如何改页面模板/快排seo软件
  • 如何网站备案/外贸网站优化
  • wordpress伪静态 宝塔/建站seo是什么
  • 招聘网站怎么做效果好/大连百度关键词排名
  • 博尔塔拉州大型网站建设/免费cms建站系统
  • 深圳官方网站建设/网络推广怎么做?
  • 安卓软件开发工程师/站长工具seo查询
  • 网站开发难不难学/百度站长工具使用方法
  • 做旅游网站一年能挣多少/公司seo是指什么意思
  • 农业网站 源码/建站教程
  • 做网站推广托管费用/店铺推广平台有哪些
  • 关于网站建设实验报告/网络营销公司名称
  • 电子商务网站建设需要做好哪些准备/上海百度推广电话
  • 网站建设平台开发/关键词排名 收录 查询
  • 怎么做家政的网站/无锡百度竞价公司
  • 淘宝里面的网站怎么做的/关键词搜索引擎工具
  • 电脑网站建设方案/男生和女生在一起探讨人生软件
  • 腾云建站靠谱吗/天津seo推广优化
  • 做网站本溪/国家免费培训机构
  • 做网站需要视频衔接怎么/百度教育会员
  • wordpress英文字体样式/seo关键词排名技巧
  • 网站建设与维护百科/网络推广项目
  • 网站设计案例/百度平台客服电话
  • 莱州网站开发/百度手机助手app下载官网