美文网首页C语言
C2. 滑动窗口

C2. 滑动窗口

作者: 开源519 | 来源:发表于2020-06-22 11:35 被阅读0次

用途: 用于解决找出符合某条件连续的数据。

1. 即在解决数组遍历问题时,利用其遍历的起点与终点。

2. 利用其数组内元素ascall和当前位置(或出现的次数)建立新数组。新数组下标为该字符ascall、大小为出现的位置或次数。

3.利用一次循环筛选出符合特定条件的连续数据​。

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

​

输入: "abcabcbb"

输出: 3 

解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: "bbbbb"

输出: 1

解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: "pwwkew"

输出: 3

解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

源码:

/*  "abcabcbb" */
#include <string.h>
int lengthOfLongestSubstring(char * s){
    int string[128] = { -1, -1 };
    int i = 0, max_len = 0, start = 0;   
   
    memset(string, -1, sizeof(string));
    for(i = 0; s[i] != 0; i++){
        if(string[s[i]] < start) {                     //忽略起点之前的坐标信息
            int temp_len = i - start + 1;
            if(temp_len > max_len) {
                max_len = temp_len;
            }              
        } else {                                       //遇见重复的字母
            start = string[s[i]] + 1;                  //重置起点坐标
        }
        string[*(s+i)] = i;                              //不断更新字母坐标信息
    }
    
    return max_len;
}

2020-06-22

记录历经的路,分享个人总结与感悟。欢迎关注公众号“嵌入式漫漫修道路”获取学习资料及经验文档,也欢迎与笔者共同探究技术问题。

嵌入式漫漫修道路

个人总结,转载请标明出处及链接,谢谢!

在看你就赞赞我!

image

相关文章

  • C2. 滑动窗口

    用途: 用于解决找出符合某条件连续的数据。 1. 即在解决数组遍历问题时,利用其遍历的起点与终点。 2. 利用其数...

  • Algorithm进阶计划 -- 滑动窗口

    滑动窗口算法滑动窗口框架滑动窗口运用 1. 滑动窗口框架 滑动窗口算法,核心思路是维护一个窗口,不断滑动,然后更新...

  • TCP可靠传输理论;流量控制;拥塞控制

    滑动窗口、超时重传、选择确认SACK 滑动窗口 滑动窗口:发送窗口、接收窗口。发送窗口内的数据都可以发送,在收到新...

  • 3. 无重复字符的最长子串

    主要用到了滑动窗口算法两个指针之间就代表是一个滑动窗口,滑动窗口必须保证没有重复元素,同时保留最大的滑动窗口的大小...

  • Flutter-BottomSheet(底部滑动窗口)

    BottomSheet(底部滑动窗口) ModalBottomSheet(对话框式底部滑动窗口) BottomSh...

  • 无重复字符最长字串

    滑动窗口

  • (3)FlinkSQL滑动窗口demo演示

    滑动窗口(Sliding Windows)与滚动窗口类似,滑动窗口的大小也是固定的。区别在于,窗口之间并不是首尾相...

  • 滑动窗口

    406. 和大于S的最小子数组 描述给定一个由 n 个正整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ...

  • 滑动窗口

    最长无重复字母子串 leetcode438

  • 滑动窗口

    介绍将TCP与UDP这样的简单传输协议区分开来的是它传输数据的质量。TCP对于发送数据进行跟踪,这种数据管理需要协...

网友评论

    本文标题:C2. 滑动窗口

    本文链接:https://www.haomeiwen.com/subject/delxfktx.html