当前位置:网站首页>双指针/滑动窗口问题
双指针/滑动窗口问题
2022-08-03 16:39:00 【Briwisdom】
难度困难12
一个数字的 分数 定义为数组织和 乘以 数组的长度。
- 比方说,
[1, 2, 3, 4, 5]
的分数为(1 + 2 + 3 + 4 + 5) * 5 = 75
。
给你一个正整数数组 nums
和一个整数 k
,请你返回 nums
中分数 严格小于 k
的 非空整数子数组数目。
子数组 是数组中的一个连续元素序列。
timeout代码:
从nums的第1个元素开始,遍历到最后一个元素,用变量L表示。
进入while循环,从L开始,逐渐递增1个数量,计算该区间nums的和,如果满足条件,ans+1,否则退出while,L=L+1继续循环
class Solution:
def countSubarrays(self, nums: List[int], k: int) -> int:
n=len(nums)
if n==1:
return 1 if nums[0]<k else 0
ans=0
L=0
while(L<n):
i=1
while(L+i<=n and sum(nums[L:L+i])*i<k):
ans+=1
i+=1
L+=1
return ans
双指针/滑动窗口优化代码:
子序列以右边结束位置为标志,从0遍历nums数组。如果满足条件ans加上左右的间隔数,否则,将left标志向右移动,用来减少求和。
right是子序列结束的位置,left是子序列开始的位置,中间的间隔是该条件下可以组成的子序列数目。
class Solution:
def countSubarrays(self, nums: List[int], k: int) -> int:
ans=he=left=0
for right, num in enumerate(nums):
he+=num
while(he*(right-left+1)>=k):
he-=nums[left]
left+=1
ans+=right-left+1
return ans
边栏推荐
猜你喜欢
华为、联想、北汽等入选工信部“企业数字化转型和安全能力提升”首批实训基地
高效的组织信息共享知识库是一种宝贵的资源
FinClip | July 2022 Product Highlights
Web3的开源为何会如此受到人们喜爱?
中小微企业如何简单便捷、低成本实现数字化?360视觉云有妙招
J9数字虚拟论:元宇宙的潜力:一股推动社会进步的力量
MATLAB | 一种简易的随机曼陀罗图形生成函数
组件通信-父传子组件通信
Auto Scaling 弹性伸缩(运维释放人力)
[Unity Starter Plan] Making RubyAdventure01 - Player Creation & Movement
随机推荐
Kubernetes 笔记 / 任务 / 管理集群 / 用 kubeadm 管理集群 / 配置一个 cgroup 驱动
面试不再被吊打!这才是Redis分布式锁的七种方案的正确打开方式
uniapp隐藏导航栏和横屏显示设置
生产环境如何删除表呢?只能在SQL脚本里执行 drop table 吗
机器人开发--Universal Scene Description(USD)
关于oracle表空间在线碎片整理
C专家编程 第3章 分析C语言的声明 3.1 只有编译器才会喜欢的语法
C专家编程 第2章 这不是Bug,而是语言特性 2.2 多做之过
[redis] cache penetration and cache avalanche and cache breakdown solutions
leetcode SVM
如何在 DataWorks 中 写SQL语句监控数据的变化到达一定的值 进行提示
高薪程序员&面试题精讲系列132之微服务之间如何进行通信?服务熔断是怎么回事?你熟悉Hystrix吗?
Description of the functional scenario of "collective storage and general governance" in the data center
Kubernetes 笔记 / 入门 / 生产环境 / 用部署工具安装 Kubernetes / 用 kubeadm 启动集群 / 安装 kubeadm
Windows 事件查看器记录到 MYSQL
【LeetCode】899. 有序队列
Looking at the ecological potential of Hongmeng OS from the evolution of MatePad Pro
使用Stream多年,collect还有这些“骚操作”?
EasyExcel实现动态列解析和存表
C专家编程 第2章 这不是Bug,而是语言特性 2.3 误做之过