首页 > 其他分享 >滑动窗口系列

滑动窗口系列

时间:2023-04-12 19:13:43浏览次数:37  
标签:系列 ... right 窗口 个数 滑动 left

滑动窗口适合在题目要求连续的情况下使用

相关题目

模板:

/* 滑动窗口算法框架 */
void slidingWindow(string s) {
    // 用合适的数据结构记录窗口中的数据
    unordered_map<char, int> window;
    
    int left = 0, right = 0;
    while (right < s.size()) {
        // c 是将移入窗口的字符
        char c = s[right];
        winodw.add(c)
        // 增大窗口
        right++;
        // 进行窗口内数据的一系列更新
        ...

        /*** debug 输出的位置 ***/
        // 注意在最终的解法代码中不要 print
        // 因为 IO 操作很耗时,可能导致超时
        printf("window: [%d, %d)\n", left, right);
        /********************/
        
        // 判断左侧窗口是否要收缩
        while (left < right && window needs shrink) {
            // d 是将移出窗口的字符
            char d = s[left];
            winodw.remove(d)
            // 缩小窗口
            left++;
            // 进行窗口内数据的一系列更新
            ...
        }
    }
}

知识点:

  • 求子区间个数:以索引为0的子数组个数+以索引为1结尾的子数组个数 + ... + 以索引为n - 1结尾的子数组个数
  • 求子区间的最值/不同元素个数/数组长度在某个区间[l, r]内,可以采用前缀和思想,求出不大于r的熟练,求出不大于l的熟练,cnt[r] - cnt[l - 1]即可满足条件

标签:系列,...,right,窗口,个数,滑动,left
From: https://www.cnblogs.com/bothgone/p/17310873.html

相关文章

  • MFC-IsIconic判断窗口是否最小化
     HWNDhWnd=NULL;UINTfunc1(LPVOIDpParam)//线程函数{BOOLbb;for(inti=0;i<1000;i++){bb=IsIconic(hWnd);//判断窗口是否最小化/*参数1:HWNDhWnd窗口句柄返回值:已经最小化返回TRUE,......
  • 【VINKA原厂技术支持】电源供电系列高稳定性抗干扰VK36Q4 DFN10 封装更小厚度超薄的四
    1.概述VK36Q4具有4个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较高的集成度,仅需极少的外部组件便可实现触摸按键的检测。提供了4路直接输出功能。芯片内部采用特殊的集成电路,具有高电源电压抑制比,可减少按键检测错误的发生,此特性保证在不利环境条件的应用......
  • Linux系列---【验证端口网络策略是否通的几种方式】
    验证端口网络策略是否通的几种方式前提:先使用ping命令保证IP是通的,再去验证端口。方式一(telnetip端口)telnet172.17.4.128080方式二(curlip:端口)curl172.17.4.12:8080#验证通:curl:(52)Emptyreplyfromserver不通:curl:(7)Failedtoconnectto172.17.4.1......
  • 如何在Mac上的一个“预览”窗口中显示若干文件呢?
    如何在Mac上的一个“预览”窗口中显示若干文件呢?您可以设定多个图像文件在“预览”中是以单独的窗口打开,还是在同一个窗口打开。还可以将文件或页面添加到已打开的PDF中,快来跟小编看看吧!【注】若要在同一个窗口中打开多个PDF,您需要打开“系统偏好设置”,点按“程序坞”,然后从“打......
  • 直播平台软件开发,Android代码模拟触摸、点击及滑动等事件
    直播平台软件开发,Android代码模拟触摸、点击及滑动等事件一、应用中模拟物理和屏幕点击事件 例如,模拟对某个view的点击事件 privatevoidsimulateClick(Viewview,floatx,floaty){  longdownTime=SystemClock.uptimeMillis();  finalMotionEventdownEve......
  • MFC-GetMainWnd获取主窗口指针
     CWinApp*pwin=AfxGetApp();//获取当前应用进程的指针CWnd*pWnd=pwin->GetMainWnd();//获取主窗口指针CGetMainWndDlg*pDlg=(CGetMainWndDlg*)pWnd;//主窗口指针转化成对话框类指针pDlg->SetWindowText(_T("练习"));CWnd*pWnd1=pWn......
  • Autosar系列之Developer工具
    文章目录一、什么是DaVinciDeveloper?二、DaVinciDeveloperWorkspace三、SoftwareConponent(SWC)Design一、什么是DaVinciDeveloper?是一个Vector工具,用于设计AutosarECU的软件组件SWC的软件(设计应用层软件)。通信图形视图或文本网格视图,可以设计软件组件,包括端口、数据类型、连......
  • Autosar系列之RTE
    文章目录一、RTE二、RTE功能一、RTERTE(Run-TImeEnvironment)是Autosar体系结构的核心。RTE是Autosar软件架构中,介于应用层和基础软件层之间,是Autosar虚拟功能总线VFB接口的实现,从而为应用软件ApplicationSoftware软件之间的通信提供基础设施服务,并促进对包括OS在内的基础软件B......
  • Autosar系列之Runnable可运行实体
    文章目录一、RUnnableEntity一、RUnnableEntity可运行实体,其实就是.C文件内的函数而已。一个SWC可以包含多个RunnableEntity,就是一个.C文件中可以包含多个函数,每个函数可以执行一个特定的操作并且RunnableEntity必须要挂子Task上,就像函数如果只是放在那里没有被调用的化,也不起......
  • Autosar系列之Ports类型
    文章目录一、接口二、接口类型三、S/R接口四、C/S接口一、接口接口是连接2个SWC通信的二、接口类型三、S/R接口发送/接受数据传输接口一般通过全局变量才传递四、C/S接口客户、服务接口;通过函数Runnable调用;ref:Autosar系列讲解2.3Ports类型......