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

滑动窗口

时间:2024-04-17 12:34:46浏览次数:17  
标签:right end nums int res start 滑动 窗口

长度最小:

 

 滑动窗口

public int minSubArrayLen(int target, int[] nums) {        int start=0;        int end=0;        int res=Integer.MAX_VALUE;        int sum=0;        while(end<nums.length){         sum+=nums[end];         while(sum>=target){          res=Math.min(res,end-start+1);          sum-=nums[start];          start++;         }         end++;        }        return res == Integer.MAX_VALUE ? 0 : res;             }     满足条件的子数组有多少个?  

 

    public int numSubarrayProductLessThanK(int[] nums, int k) {           //同样排除k为1的情况比如  [1,1,1] k=1         if (k <= 1) {             return 0;         }         int left = 0;         int right = 0;         //创建一个变量记录路上的乘积         int mul = 1;         //记录连续数组的组合个数         int ans = 0;
        //用右指针遍历整个数组,每次循环右指针右移一次         while(right<nums.length) {             //记录乘积             mul *= nums[right];             //当大于等于k,左指针右移并把之前左指针的数除掉             while (mul >= k) {                 mul /= nums[left];                 left++;             }
            //每次右指针位移到一个新位置,应该加上 x 种数组组合:             //  nums[right]             //  nums[right-1], nums[right]             //  nums[right-2], nums[right-1], nums[right]             //  nums[left], ......, nums[right-2], nums[right-1], nums[right]             //共有 right - left + 1 种             ans += right - left + 1;
            //右指针右移             right++;         }         return ans;
    }


return ans;
}

 

最长无重复:

 

public int maxLength (int[] arr) {         // write code here         int start=0;         int end=0;         int res=0;         while(end<arr.length){             for(int j=start;j<end;j++){                 if(arr[end]==arr[j]){                   res=Math.max(res,end-start);                   start=j+1;                 }             }             end++;         }         return Math.max(res,end-start);
    }  

标签:right,end,nums,int,res,start,滑动,窗口
From: https://www.cnblogs.com/doudou666/p/18140296

相关文章

  • Qt实现无边框窗口(二)
    本例使用纯Qt实现了无边框的窗口,包含了窗口外围的阴影和调整窗口大小的功能,以及最小化、最大化和关闭按钮的功能。本程序在VS2017、Qt5.9下测试通过。期间为了正确响应鼠标消息调试了1~2天,因为在推拽调整窗口大小的时候总是会出漏洞,不过最终还是解决了这些问题。运行效果如下图:......
  • 2-81. 创建交易窗口 UI 并实现拖拽交易打开交易窗口
    关闭窗口修改EventHandler修改InventoryUI修改NPCFunction打开窗口人物无法移动修改Enums修改EventHandler修改NPCFunction修改Player打开对话框人物还可以移动修改DialogController打开商店的时候同时打开背包调整背包和商店锚点位置修改Inven......
  • PB数据窗口行如何显示不同颜色
    问题: 大意就是按分组显示颜色思路:我在這使用[訂單]這一欄來做這個例子,結果如下圖 背景顏色的運算式,只以cmp_group_count這欄為例作法1.先加一個運算欄位,這裏命名為cmp_order_no運算式if(訂單<>訂單[-1]orgetrow()=1,1,0)2.再加一個運算欄位,裏裏命......
  • 一个.NET开源的功能丰富、灵活易用的 Windows 窗口增强神器
    思维导航前言工具介绍支持系统工具源代码工具下载并安装部分功能截图项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言通常情况下Windows中的软件窗口界面一般只包含还原、移动、大小、最大化、最小化、关闭等几个基本的操作: 今天大姚给大家推......
  • 一个.NET开源的功能丰富、灵活易用的 Windows 窗口增强神器
    前言通常情况下Windows中的软件窗口界面一般只包含还原、移动、大小、最大化、最小化、关闭等几个基本的操作: 今天大姚给大家推荐一个.NET开源、免费(MITLicense)、功能丰富、灵活易用、小巧(不到1M)的Windows窗口增强工具:SmartSystemMenu。工具介绍SmartSystemMenu扩展了......
  • IDEA 中 Popup(弹出窗口)的设置说明
    IDEA中Popup(弹出窗口)的设置说明.Balloon:弹出窗在屏幕上显示一小段时间,然后自动消失。通知也会显示在状态栏中,并添加到通知列表中。Stickyballoon:若不手动关闭,弹出窗会在屏幕上一直显示。Nopopup:不显示该弹出窗。参考IDEA启用/禁用RunDashboard.......
  • C# 冻结Excel窗口以锁定行列、或解除冻结
    在处理大型Excel工作簿时,有时候我们需要在工作表中冻结窗格,这样可以在滚动查看数据的同时保持某些行或列固定不动。冻结窗格可以帮助我们更容易地导航和理解复杂的数据集。相反,当你不需要冻结窗格时,你可能需要解冻它们以获得完整的视野。下面将介绍如何使用免费.NET库通过C#实现......
  • Windows窗口句柄监控
    我说想要一段实现了当发现windows桌面上冒出新窗口就截图保存的功能,AI写的,测了下能用。#pipinstallpyautoguipywin32importtimeimportwin32guiimportpyautoguidefcapture_window_screenshot(hwnd):"""截取截图"""screenshot=pyautogui.screenshot()......
  • selenium之窗口切换
    selenium之窗口切换1、弹窗1.1Alterdriver.find_element(By.ID,"alert").click()#窗口切换并获取textprint(driver.switch_to.alert.text)#窗口切换并点击确定driver.switch_to.alert.accept()driver.find_element(By.ID,"alert").click()#窗口切换并点击取消d......
  • 构建动态交互式H5导航栏:滑动高亮、吸顶和锚点导航技巧详解
    功能描述产品要求在h5页面实现集锚点、吸顶及滑动高亮为一体的功能,如下图展示的一样。当页面滑动时,内容区域对应的选项卡高亮。当点击选项卡时,内容区域自动滑动到选项卡正下方。布局设计css布局为了更清晰的描述各功能实现的方式,将页面布局进行了如下的拆分。★最外层的元......