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

北京企业建站团队地推公司

北京企业建站团队,地推公司,web页面 wordpress,成都网站建设培训学校题目 题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/ 给定一个含有 n个正整数的数组和一个正整数 target** 。** 找出该数组中满足其总和大于等于target的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**…
题目

题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/
给定一个含有 n个正整数的数组和一个正整数 target** 。**
找出该数组中满足其总和大于等于target的长度最小的 子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组,返回 0

输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {}
};
思路 & 代码
暴力解法
#include <vector>
#include <cstdint>
#include <iostream>
using namespace std;class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int sum = 0;int subLength = 0;int result = INT32_MAX;// 需要<cstdint>头文件for(int i = 0; i < nums.size(); i++){sum = 0; // 是子序列的和,设置为0,用于下一个子序列的初始值for(int j = i; j < nums.size(); j++) {sum += nums[j];if (sum >= target){subLength = j - i + 1;result = result > subLength ? subLength : result;break; // 找到符合条件的子序列,就退出当前的 j 的for 循环。}}}if(result == INT32_MAX)return 0; // 说明没有符合条件的子序列else return result;}
};
// @lc code=endint main() {Solution obj;vector<int> vec = {2,1,1,2,4,3};int target = 7;int res = obj.minSubArrayLen(target, vec);cout << res << endl;
}

时间复杂度:O(n^2)
空间复杂度:O(1)

滑动窗口

滑动窗口:不断的调节子序列的起始位置和终止位置,从而得到想要的结果
将暴力法中的两个for循环改成使用一个for循环实现搜索。

  • 窗口内是什么?
    • 满足其和 >= s 的长度最小的 连续 子数组
  • 如何移动窗口的起始位置?
    • 当前窗口的值 >= s,就要往前移动了
  • 如何移动窗口的结束位置?
    • 窗口的结束位置就是遍历数组的指针,也就是for循环里的索引
class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int sum = 0;int subLength = 0;int result = INT32_MAX;// 需要<cstdint>头文件int i = 0;for(int j = 0; j < nums.size(); j++) {sum += nums[j];while (sum >= target){subLength = j - i + 1;result = result > subLength ? subLength : result;sum -= nums[i];i++;}}if(result == INT32_MAX)return 0; // 说明没有符合条件的子序列else return result;}
};

时间复杂度:O(n)
空间复杂度:O(1)
每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被操作两次,所以时间复杂度是 2 × n 也就是O(n)

http://www.dtcms.com/wzjs/124300.html

相关文章:

  • 南宁手机企业网站定制自动seo优化
  • 前端开发用什么语言seo外包优化公司
  • 遵义市人民政府门户网站北京网络营销
  • 网站后期维护和管理怎么做今日特大新闻
  • 市网站建设公司微信推广怎么弄
  • 营销型网站外包网络营销这个专业怎么样
  • 阜阳做网站的公司360推广登录平台
  • 怎么做网站教程简单昨日凌晨北京突然宣布重大消息
  • wordpress istaxseo关键词优化软件合作
  • 企业网站的建立步骤百度官方网站下载安装
  • 政府网站建设专题培训seo技术培训机构
  • 做一个旅游团网站怎么做郑州网站建设制作公司
  • 软件开发软件开发网站seo优化排名营销
  • wordpress安装权限管理朝阳seo推广
  • 国外机械做的好的网站口碑营销什么意思
  • 几大门户网站湖南专业关键词优化
  • 做网站前端要会什么什么叫做优化
  • 山西省住房和城乡建设厅网站首页杭州网站建设公司
  • 沈阳哪家网站做的好软文广告经典案例短的
  • 怎么做网站logo怎么做好公司官网推广
  • python能否做网站百度资源搜索
  • 电子商务网站建设 上海产品如何在网上推广
  • 个人网站链接怎么做营销网站建设规划
  • 做公司网站源代码怎么写百度网站排名搜行者seo
  • 有做外国人的零售网站吗网站建设方案
  • 网站如何做电脑和手机appseo含义
  • 自己做的网站 打开了没有图片怎么网络推广自己业务
  • 怎样做网站收录关键词数据分析
  • 自我介绍html网页模板seo引擎搜索网站
  • 宿州注册公司多少钱长沙seo优化首选