码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 双指针/滑动窗口问题


    2302. 统计得分小于 K 的子数组数目

    难度困难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继续循环

    1. class Solution:
    2. def countSubarrays(self, nums: List[int], k: int) -> int:
    3. n=len(nums)
    4. if n==1:
    5. return 1 if nums[0]else 0
    6. ans=0
    7. L=0
    8. while(L
    9. i=1
    10. while(L+i<=n and sum(nums[L:L+i])*i
    11. ans+=1
    12. i+=1
    13. L+=1
    14. return ans

    双指针/滑动窗口优化代码:

    子序列以右边结束位置为标志,从0遍历nums数组。如果满足条件ans加上左右的间隔数,否则,将left标志向右移动,用来减少求和。

    right是子序列结束的位置,left是子序列开始的位置,中间的间隔是该条件下可以组成的子序列数目。

    1. class Solution:
    2. def countSubarrays(self, nums: List[int], k: int) -> int:
    3. ans=he=left=0
    4. for right, num in enumerate(nums):
    5. he+=num
    6. while(he*(right-left+1)>=k):
    7. he-=nums[left]
    8. left+=1
    9. ans+=right-left+1
    10. return ans

  • 相关阅读:
    2022年“科学探索奖”获奖者90%具有海外经历
    【算法3.12】二分图 - 匈牙利算法 NTR算法(完结)
    达梦数据库V8(启动数据库实例服务)
    C++重载底层原理
    汽车OTA技术门槛提升,具备软硬一体化能力的Tier1优势凸显
    OpenCV显示中文(python)
    svn服务器迁移包括日志
    物联网AI MicroPython传感器学习 之 WS2812 RGB点阵灯环
    uniapp录音功能
    (汇总)系统设计 - 我们如何通俗的理解那些技术的运行原理 - 汇总篇
  • 原文地址:https://blog.csdn.net/u010420283/article/details/126090787
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号