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

河南省建设执业资格中心网站企业网站备案网地址

河南省建设执业资格中心网站,企业网站备案网地址,让网站对搜索引擎友好,wordpress轻量博客主题文章目录 Leetcode209. 长度最小的子数组题目解法一(暴力求解)(超时)解法二(滑动窗口) Leetcode3. 无重复字符的最长子串题目解法一(暴力求解)解法二(滑动窗口) Leetcode1004. 最大连…

文章目录

  • Leetcode209. 长度最小的子数组
    • 题目
    • 解法一(暴力求解)(超时)
    • 解法二(滑动窗口)
  • Leetcode3. 无重复字符的最长子串
    • 题目
    • 解法一(暴力求解)
    • 解法二(滑动窗口)
  • Leetcode1004. 最大连续1的个数 III
    • 题目
    • 解法(滑动窗口)

Leetcode209. 长度最小的子数组

题目

Leetcode209. 长度最小的子数组

解法一(暴力求解)(超时)

暴力枚举出所有子数组的和 O(n^2);

代码

class Solution 
{
public:int minSubArrayLen(int target, vector<int>& nums) {int n = nums.size();int res = INT_MAX;// 记录答案for(int i = 0; i < n; i++){int sum = 0;for(int j = i; j < n; j++){sum += nums[j];if(sum >= target){res = min(res, j - i + 1);break;}}}return res == INT_MAX ? 0 : res;}
};

解法二(滑动窗口)

开始将右端元素划⼊窗⼝中,统计出此时窗⼝内元素的和:

  • 如果窗⼝内元素之和⼤于等于target :更新结果,并且将左端元素划出去的同时继续判
    断是否满⾜条件并更新结果(因为左端元素可能很小,划出去之后依旧满⾜条件)
  • 如果窗⼝内元素之和不满⾜条件: right++ ,另下⼀个元素进⼊窗⼝。

O(N^2)

代码

class Solution 
{
public:int minSubArrayLen(int target, vector<int>& nums) {int res = INT_MAX;int sum = 0;for(int left = 0, right = 0; right < nums.size(); right++){sum += nums[right];//进窗口while(sum >= target)//判断{res = min(res, right - left + 1);//更新结果sum -= nums[left++];//出窗口}}return res == INT_MAX? 0:res;}};

Leetcode3. 无重复字符的最长子串

题目

Leetcode3. 无重复字符的最长子串

解法一(暴力求解)

从每一个字母开始向后枚举无重复字符的字串最大的长度
利用哈希表来统计每一个字符出现的次数

代码

class Solution 
{
public:int lengthOfLongestSubstring(string s) {int res = 0;int n = s.size();for(int i = 0; i < n; i++){//利用数组模拟哈希统计字符出现次数int hash[128] = {0};for(int j = i; j < n; j++){hash[s[j]]++;//统计字符的次数if(hash[s[j]] > 1)//判断{break;}res = max(res, j - i + 1);}}return res;}
};

解法二(滑动窗口)

右端元素 ch 进⼊窗⼝的时候,哈希表统计这个字符的频次:

  • 如果这个字符出现的频次超过 1 ,说明窗⼝内有重复元素,那么就从左侧开始划出窗⼝,
    直到 ch 这个元素的频次变为 1 ,然后再更新结果。
  • 如果没有超过 1 ,说明当前窗⼝没有重复元素,可以直接更新结果。
    代码
class Solution 
{
public:int lengthOfLongestSubstring(string s) {int res = 0;int n = s.size();int hash[128] = {0};//利用数组模拟哈希统计字符出现次数for(int left = 0, right = 0; right < n; right++){hash[s[right]]++;//进窗口while(hash[s[right]] > 1)//判断{hash[s[left]]--;//出窗口left++;}res = max(res, right - left + 1);// 更新结果}return res;}
};

Leetcode1004. 最大连续1的个数 III

题目

Leetcode1004. 最大连续1的个数 III

解法(滑动窗口)

我们发现一会从左边开始减、一会从右边开始减,这样做起来十分麻烦,因为我们不确定从哪边开始,所以我们不要想着如何反转,而是一段连续的1中间有k个0。
因此,我们将题目转化为了求一段最长连续区间,要求其中的0不能超过k

代码

class Solution 
{
public:int longestOnes(vector<int>& nums, int k) {int res = 0;int zero = 0;//统计0的个数for(int left = 0, right = 0; right < nums.size(); right++){if(nums[right] == 0) zero++;//进窗口while(zero > k)//判断{if(nums[left++] == 0) zero--;//出窗口}res = max(res, right - left + 1);//更新结果}return res;}
};
http://www.yayakq.cn/news/440548/

相关文章:

  • 合作社网站建设建设阿里巴巴网站
  • 爱妮微如何做网站链接的网址部标平台软件网站开发
  • 好听的网站名称永久个人自助建站
  • 优秀原创设计网站wordpress用闲聊
  • 江苏建设工程招投标网站遵义会议在线
  • 如何把自己做的网站连上网长沙企业网站开发微联讯点
  • 医疗医院网站建设网页设计用啥软件
  • 宣传旅游网站建设的重点是什么建筑工程网络组网
  • 泰安网站建设定制公司wordpress添加菜单分类目录是灰的
  • iis停止单个网站信息流优化
  • 内蒙古自治区住房和城乡建设厅网站wordpress无法访问插件
  • 模仿网站怎么做清远网站seo
  • 摄影作品网站或app百度浏览器网址是多少
  • 南宁 网站建设 公司百度收录关键词
  • 合肥网站网站建设移动网站建设初学视频教程
  • 自建网站要多少钱大数据平台设计
  • 网站建设公司图片佛山做网站-准度科技公司
  • 创建网站的软件什么梦仁怀市城乡建设网站
  • 佛山市建设企业网站服务机构有什么关于网站建设实例的书
  • 金昌市网站建设视频类的网站制作
  • 网站建设宣传ppt模板下载django网站开发规范
  • 拉企业做网站好干吗泊头市网站制作公司
  • 找承包工程的平台铁岭网站建设网络优化
  • 陕西做网站公司上百度推广 免费做网站
  • 网站优化seo域名注册成功怎么做网站
  • 网站顶端大图怎么做怎么去推广一个app
  • 三台网站建设哪家专业网站建设布为网
  • 昆山网站建设设计哪类网站赚钱 优帮云
  • 班级做网站人的叫什么上海网站建设市场
  • 有服务器有域名如何做网站做同城网站需要哪些手续