首页 > 其他分享 >数据结构-树状数组

数据结构-树状数组

时间:2023-09-04 11:48:23浏览次数:66  
标签:树状 Fenwick 个数 数组 序列 数据结构

新接触到的数据结构,根据百度百科:

树状数组或二叉索引树(英语:Binary Indexed Tree),又以其发明者命名为Fenwick树,最早由Peter M. Fenwick于1994年以A New Data Structure for Cumulative Frequency Tables为题发表在SOFTWARE PRACTICE AND EXPERIENCE。其初衷是解决数据压缩里的累积频率(Cumulative Frequency)的计算问题,现多用于高效计算数列的【前缀和】, 【区间和】

 

按照Peter M. Fenwick的说法,正如所有的整数都可以表示成2的幂和,我们也可以把一串序列表示成一系列子序列的和。采用这个想法,我们可将一个【前缀和】划分成多个【子序列】的和,而划分的方法与数的2的幂和具有极其相似的方式。一方面,子序列的个数是其二进制表示中1的个数,另一方面,子序列代表的f[i]的个数也是2的幂。

看百度百科没怎么看懂。。

Leetcode307

标签:树状,Fenwick,个数,数组,序列,数据结构
From: https://www.cnblogs.com/wolfsky/p/17676494.html

相关文章

  • JS判断一个数组中是否有重复值
    方法一:  varary=newArray("111","22","33","111");varnary=ary.sort();for(vari=0;i<ary.length;i++){if(nary[i]==nary[i+1]){alert("数组重复内容:"+nary[i]);......
  • js操作Array数组大全
    unshift:将参数添加到原数组开头,并返回数组的长度 pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined push:将参数添加到原数组末尾,并返回数组的长度 concat:返回一个新数组,是将参数添加到原数组中构成的 splice(start,deleteCount,val1,val2,...):从start位置......
  • 剑指 Offer 03. 数组中重复的数字
    剑指Offer03.数组中重复的数字利用题目的限制条件:所有数字都在0~n-1的范围内通过交互让数字和下标一一对应,如果有多个数字对应同一个下标,那就找到了答案。classSolution{publicintfindRepeatNumber(int[]nums){intn=nums.length;inti=0;......
  • 东方博宜OJ1010 数组元素的排序 C语言版
    题目描述对数组的元素按从小到大进行排序。输入第一行有一个整数 n ( 5≤n≤10 );第二行有 n 个整数,每个整数的值在 [0,109]的范围内。输出输出排序后的数组。样例输入812368745输出12345678来源数组问题代码 #incl......
  • 2023-09-03:用go编写。给你一个 n 个节点的无向无根树,节点编号从 0 到 n - 1 给你整数
    2023-09-03:用go语言编写。给你一个n个节点的无向无根树,节点编号从0到n-1给你整数n和一个长度为n-1的二维整数数组edges,其中edges[i]=[ai,bi]表示树中节点ai和bi之间有一条边。再给你一个长度为n的数组coins,其中coins[i]可能为0也可能为1,1表示节......
  • 2023-09-03:用go编写。给你一个 n 个节点的无向无根树,节点编号从 0 到 n - 1 给你整数
    2023-09-03:用go语言编写。给你一个n个节点的无向无根树,节点编号从0到n-1给你整数n和一个长度为n-1的二维整数数组edges,其中edges[i]=[ai,bi]表示树中节点ai和bi之间有一条边。再给你一个长度为n的数组coins,其中coins[i]可能为0也可能为1,1......
  • C#数据结构之Tree
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceAlgorithmsDemo{publicclassTreeNode<T>{publicTData{get;set;}publicList<TreeNode<......
  • C++算法之旅、05 基础篇 | 第二章 数据结构
    常用代码模板2——数据结构-AcWing笔试用数组模拟而不是结构体使用结构体指针,newNode()非常慢,创建10万个节点就超时了,做笔试题不会用这种方式(优化是提前初始化好数组,但这样跟数组模拟没区别了,而且代码量很长)单链表(数组)使用两个数组,e存储val,ne存储next。空节点next用-1表......
  • Java:commons-codec实现byte数组和16进制字符串转换
    目录commons-codec实现原理封装StringUtil类commons-codec文档https://commons.apache.org/proper/commons-codec/https://mvnrepository.com/artifact/commons-codec/commons-codec坐标<dependency><groupId>commons-codec</groupId><artifactId>com......
  • javaee spring 依赖注入之复杂类型的注入数组 集合 等
    spring依赖注入之复杂类型的注入packagecom.test.pojo;importjava.util.List;importjava.util.Map;importjava.util.Properties;/***@description:*@projectName:testSpring*@see:com.test.pojo*@createTime:2023/8/2714:39*/publicclassAA{pri......