给大家分享一个在平时遇到有关数组的算法问题时常用的思想,也是十分自然的技巧,以预先生成数组前缀合最为常见
若给定一个数组,需要在数组中进行频繁的求下标L到下标R的元素之和的操作
arr[3,2,-7,0,1]
help[i]=arr[0]+arr[1]+...+arr[i] //可预先建立一个记录了从0到每个位置i的元素之和的数组
help[R]-help[L] //即为所求L到R的元素之和
好处:将每次需要遍历的行为优化成了复杂度为O(1)的查询行为,小细节~
给大家分享一个在平时遇到有关数组的算法问题时常用的思想,也是十分自然的技巧,以预先生成数组前缀合最为常见
若给定一个数组,需要在数组中进行频繁的求下标L到下标R的元素之和的操作
arr[3,2,-7,0,1]
help[i]=arr[0]+arr[1]+...+arr[i] //可预先建立一个记录了从0到每个位置i的元素之和的数组
help[R]-help[L] //即为所求L到R的元素之和
好处:将每次需要遍历的行为优化成了复杂度为O(1)的查询行为,小细节~