当前位置:网站首页>双指针/滑动窗口问题
双指针/滑动窗口问题
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
边栏推荐
- C专家编程 第1章 C:穿越时空的迷雾 1.7 编译限制
- Windows 事件查看器记录到 MYSQL
- Interviews are no longer hanged!This is the correct way to open the seven schemes of Redis distributed locks
- Web3 安全风险令人生畏?应该如何应对?
- 【There is no tracking information for the current branch. Please specify which branch you want to 】
- 83. Remove Duplicates from Sorted List
- 20. Valid Parentheses
- #夏日挑战赛# HarmonyOS 实现一个绘画板
- C语言01、数据类型、变量常量、字符串、转义字符、注释
- 【翻译】关于扩容一个百万级别用户系统的六个课程
猜你喜欢
C专家编程 第1章 C:穿越时空的迷雾 1.6 它很棒,但它符合标准吗
高效的组织信息共享知识库是一种宝贵的资源
“68道 Redis+168道 MySQL”精品面试题(带解析),你背废了吗?
[Unity Getting Started Plan] Basic Concepts (6) - Sprite Renderer Sprite Renderer
#夏日挑战赛#【FFH】OpenHarmony设备开发基础(四)启动流程
如何设计大电流九线导电滑环
phoenix创建映射表和创建索引、删除索引
After using Stream for many years, does collect still have these "saucy operations"?
蒋松廷 荣获第六季完美童模全球总决赛 全球总冠军
FinClip | 2022 年 7 月产品大事记
随机推荐
SQL中对 datetime 类型操作
DAYU200 OpenHarmony标准系统HDMI全屏显示
从零开始搭建MySQL主从复制架构
Web3 安全风险令人生畏?应该如何应对?
请问下这个hologres维表是被缓存了么?怎么直接Finished了
Component communication - parent-child component communication
组件通信--下拉菜单案例
Kubernetes 笔记 / 目录
设置海思芯片MMZ内存、OS内存详解
将 Windows 事件日志错误加载到 SQL 表中
机器人开发--Universal Scene Description(USD)
TypeScript的配置文件tsconfig.json
LeetCode·899.有序队列·最小表示法
如何使用MATLAB绘制极坐标堆叠柱状图
滑环安装注意事项
Components of communication - the drop-down menu
C专家编程 第3章 分析C语言的声明 3.7 typedef struct foo{... foo;}的含义
Big guys.Use flink-cdc-sqlserver version 2.2.0 to read sqlserver2008R
兄弟组件通信context
MATLAB | 七夕节快到了,还不给朋友安排上这个咕呱小青蛙?