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

做平面设计都在那个网站找免费素材?cms模板

做平面设计都在那个网站找免费素材?,cms模板,办公室装修效果图简约大气,最专业的网站建设组织目录 题目描述 题解 思路分析 暴力枚举代码 滑动窗口代码 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] #xff0c;并返回其长度。如果不存在符合条…目录 题目描述 题解 思路分析 暴力枚举代码 滑动窗口代码 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] 并返回其长度。如果不存在符合条件的子数组返回 0 。 示例 输入target 7, nums [2,3,1,2,4,3] 输出2 输入target 4, nums [1,4,4] 输出1 题解 思路分析 题目要求我们找到和 target 的 最小 且 连续 的子数组我们很容易想到暴力枚举的方法即访问数组的每一个元素i并将i作为第一个元素向后寻找 暴力枚举代码 class Solution {public int minSubArrayLen(int target, int[] nums) {int count 0;for(int i 0; i nums.length; i){int sum 0;//向后遍历找到以nums[i]为起始元素的最小数组for(int j i; j nums.length;j){sum nums[j];if(sum target){//更新目标值 由于count的初始值为0因此需要更新初始值//否则最小值恒为0if(count j-i1 || count 0){count j-i1;}break;}}}//若count未被更新则返回0即没有子数组的和大于target//若count被跟新则返回最小的子数组长度return count;} } 此时我们通过遍历访问了数组的每个元素在访问每个元素时以该元素为起始元素并向后寻找其最小长度的子数组因此时间复制度为O() 而题目所给的数组中所有元素均是正整数因此每加上一个元素子数组的和 sum 增加通过这个特性我们可以想到使用滑动窗口来解决这个问题 什么是滑动窗口 滑动窗口是一种基于双指针的思想两个指针指向的元素之间形成了一个窗口 因此滑动窗口是通过两个指针来维护的那么如何移动这两个指针是使用滑动窗口解决问题的关键 初始时两个指针都指向0下标位置 遍历元素若条件不满足则将right指针向右移动直到条件满足为止 当条件满足时则保持右指针不变开始移动左指针 left 在向窗口中添加新元素或从窗口中删除旧元素时可能会更新一些与窗口范围有关的数据例如本题就需要更新最小子数组的长度 如何使用滑动窗口解决本题  1我们定义两个指针left right并让其都指向数组首元素 2此时窗口内只有 2 这一个元素不满足和 sum target因此将right向右移动将新的元素加入窗口中并判断此时子数组的和 sum 是否大于等于target若满足则不再移动right 3在sum target时首先判断最小的子数组长度是否需要更新并保持right不变向右移动左指针left删除旧的元素直到sum target 4循环23直到right遍历完数组 为什么可以使用滑动窗口解决本题   因为我们要找的子数组是连续的且数组中的元素都为正整数即子数组中增加一个元素子数组中的元素和sum增加从窗口中删除一个元素sum减小因此我们可以通过改变子数组的两端元素来更新数组因此可以使用滑动窗口来解决本题 由于左右指针都只遍历了一遍数组因此时间复杂度为O(N) 滑动窗口代码 class Solution {public int minSubArrayLen(int target, int[] nums) {int left 0;int right 0;int sum nums[0];int len nums.length;int count 0;while(left right right len){//小于目标值向右移动右指针rightwhile(left right right len sum target){right;if(right len){break;}sum nums[right];}//大于等于目标值while(left right sum target){//更新目标值 由于count的初始值为0因此需要更新初始值否则最小值恒为0if((right - left) count || count 0){count right - left 1;}//左边值出窗口left向右移动sum - nums[left];left;}}//若count未被更新则返回0即没有子数组的和大于target//若count被跟新则返回最小的子数组长度return count;} } 题目来自 LCR 008. 长度最小的子数组 - 力扣LeetCode
http://www.pierceye.com/news/156517/

相关文章:

  • ppt模板做的好的网站有哪些wordpress 多站点设置
  • ui作品集 网站怎么做网站制作加我
  • 自助做网站wordpress更换本地主题
  • 凡科网多页网站怎样做一线城市做网站工资有多少
  • .asp网站怎么做需要一个网站
  • 免费网站代码大全网站开发费入什么费用
  • 网站域名注册多少钱搜索引擎优化工具深圳
  • 学建设网站去哪里学建网站要大约多少钱
  • 网站正则表达式怎么做网站维护一般需要多久
  • 北京网站优化价格有没有做花卉种子的网站啊
  • 资源型网站建设 需要多大硬盘vi设计方案模板
  • 网站怎么做图片放映效果代码怎么生成网站
  • 怎么写代码做网站建投商务网官网
  • 江西那家做网站公司好各类网站建设
  • 做网站和服务器的大小有关吗it培训课程
  • 湖南网站建设公司 搜搜磐石网络网站推广模板
  • 网站是软件吗页网站设计
  • 网站服务器搭建及配置的具体步骤如果自己制作网站
  • 湖北餐饮网站建设做排版的网站
  • 广东省建设教育协会官方网站首页世界上最有趣的网站
  • 平面构成作品网站手机网页qq登录
  • 厦门app开发网站开发公司电话重庆网站排名外包
  • 个人备案经营网站用自己网站做邮箱域名解析
  • 为什么大公司开发网站做英文网站网站犯法吗
  • 大连网站seo陇西网站建设公司
  • 电力建设工程质监总站网站域名使用费用一年多少钱
  • 建设单位网站经费请示上海外国语大学学风建设网站
  • 优秀网站管理员wordpress淘宝客模板下载
  • 广州越秀区网站建设手工制作简单又漂亮
  • 西安商城网站开发网站建设前台后台教程