当前位置: 首页 > java >正文

前缀和知识笔记

文章目录

    • 使用场景
    • 生成前缀和数组
    • 使用前缀和数组
    • Python代码

使用场景

当一个数组需要频繁计算某个区间内的元素和,推荐使用前缀和,可以避免每一次计算都把整个区间的元素遍历一遍。

生成前缀和数组

在这里插入图片描述
假设前缀和数组为prefix_arr,prefix_arr的第一个元素与原数组的第一个元素相同,之后每一个元素值都等于本身加上前一个元素,即:
prefix_arr[i] = prefix_arr[i] + prefix_arr[i - 1]

使用前缀和数组

假设前缀和数组为prefix_arr,其中prefix_arr[i]表示前i个元素(包含i)的和,如果需要计算区间[j, i]的元素和SUM(j, i),其中0 < j <= i,则:
SUM(j, i) = prefix_arr[i] - prefix_arr[j - 1]

Python代码

def prefix_sum(arr: list):n = len(arr)prefix_arr = [0] * n  # 前缀和数组prefix_arr[0] = arr[0]for i in range(1, n):prefix_arr[i] = prefix_arr[i] + prefix_arr[i - 1]return prefix_arr
http://www.xdnf.cn/news/8863.html

相关文章:

  • 差速器行星齿轮机械加工工艺及工序卡设计
  • Redis缓存异常问题深度解析:穿透、击穿与雪崩
  • 如何设计一个高性能的短链设计
  • ind_knn_ad环境搭建和运行【用自己的数据集】
  • 【Linux】系统程序−进度条
  • DAX权威指南3:变量、迭代函数与计算组
  • 【MySQL】第十一弹——JDBC编程
  • 如何用,向量表示3维空间种的有向线段(4,2,3)
  • 【电子通识】FPC连接器组成部分与不良案例术语
  • 常用正则表达式及语法详解
  • 【医学影像 AI】探索 MONAI:医学影像 AI 的综合框架
  • matlab实现SS-ELM和US-ELM
  • 计算机网络技术(二)
  • Linux多线程编程
  • 如何使用Webpack实现异步加载?
  • redis集群创建时手动指定主从关系的方法
  • 《技术择时,价值择股》速读笔记
  • 宽带卫星通信中的时分多址技术
  • STM32中的SPI通信协议
  • Vulkan 学习(15)---- Vulkan 完整渲染流程
  • 怎么判断文件是否支持多线程下载
  • 【Day36】
  • Python打卡训练营学习记录Day36
  • pyhton基础【4】判断
  • 使用Cursor生成需求文档+UI设计图
  • 【扫描线 线段树】P1856 [IOI 1998 ] [USACO5.5] 矩形周长Picture|普及+
  • firfox 国外版和国内版本账号不互通问题处理
  • 理论物理:为什么在极低温(接近绝对零度)时,经典理论失效?
  • 5.25 打卡
  • 高级特性实战:死信队列、延迟队列与优先级队列(三)