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

jsp做网站实例产品推销

jsp做网站实例,产品推销,湛江城乡建设网站,汽油价格最新调整文章目录 面试题 10.10. 数字流的秩327. 区间和的个数315. 计算右侧小于当前元素的个数 树状数组可以理解一种数的存储格式。 面试题 10.10. 数字流的秩 假设你正在读取一串整数。每隔一段时间,你希望能找出数字 x 的秩(小于或等于 x 的值的个数)。 请实现数据结构…

文章目录

      • 面试题 10.10. 数字流的秩
      • 327. 区间和的个数
      • 315. 计算右侧小于当前元素的个数

树状数组可以理解一种数的存储格式。
在这里插入图片描述

面试题 10.10. 数字流的秩

假设你正在读取一串整数。每隔一段时间,你希望能找出数字 x 的秩(小于或等于 x 的值的个数)。
请实现数据结构和算法来支持这些操作,也就是说:
实现 track(int x) 方法,每读入一个数字都会调用该方法;
实现 getRankOfNumber(int x) 方法,返回小于或等于 x 的值的个数。

面试题 10.10. 数字流的秩

class StreamRank {vector<int> v;int lowbit(int x) {return x & -x;}
public:StreamRank(): v(50002, 0) {}void track(int x) {++x; //x + 1是因为树状数组处理的元素下标从1开始while (x <= 50001) {v[x]++;x += lowbit(x);}}int getRankOfNumber(int x) {++x;int ans = 0;while (x) {ans += v[x];x -= lowbit(x);}return ans;}
};
class StreamRank:def __init__(self):self.l = [0]*50002def lowBit(self, x):return x & (-x)def track(self, x: int) -> None:x += 1while x <= 50001:self.l[x] += 1x += self.lowBit(x)def getRankOfNumber(self, x: int) -> int:x += 1ans = 0while x:ans += self.l[x]x -= self.lowBit(x)return ans

327. 区间和的个数

给你一个整数数组 nums 以及两个整数 lower 和 upper 。求数组中,值位于范围 [lower, upper] (包含 lower 和 upper)之内的 区间和的个数 。
区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。

327. 区间和的个数
区间过大,hash,然后到树状数组。

class Solution:def countRangeSum(self, nums, lower: int, upper: int) -> int:n = len(nums)prefixs = [0]*nt = 0ans = 0for i in range(n):t += nums[i]prefixs[i] = tif lower<= t<= upper:ans += 1s = set()for i in range(n):s.add(prefixs[i])s.add(prefixs[i]-lower)s.add(prefixs[i] - upper)l = sorted(s)d = {x: i+1 for i, x in enumerate(l)}  # hash到固定长度trie = [0]*(len(d)+1)  # 树状数组for i in range(n):left, right = d[prefixs[i]-upper], d[prefixs[i]-lower]ans += self.query(trie, right) - self.query(trie, left-1)self.insert(trie, d[prefixs[i]])return ansdef query(self, trie, x):ans = 0while x:ans += trie[x]x -= x & (-x)return ansdef insert(self, trie, x):while x < len(trie):trie[x] += 1x += x & (-x)

315. 计算右侧小于当前元素的个数

给你一个整数数组 nums ,按要求返回一个新数组 counts 。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。

315. 计算右侧小于当前元素的个数

class Solution:def countSmaller(self, nums: List[int]) -> List[int]:n = len(nums)l = [0]*20002 # -10000~10000 -> 2~20002 因为求小于x的值,x=2,count输入x=1ans = [0]*nfor i in range(n-1,-1,-1):x = nums[i] + 10002ans[i] = self.count(l, x-1)self.insert(l, x)return ansdef count(self, l, x):ans = 0while x:ans += l[x]x -= self.lowBit(x)return ansdef lowBit(self, x):return x & (-x)def insert(self, l, x):while x < len(l):l[x] += 1x += self.lowBit(x)

算法学习笔记(2) : 树状数组

http://www.wangmingla.cn/news/7051.html

相关文章:

  • 成都市建设工程施工安监站网站百度小程序对网站seo
  • 可视化课题组网站建设教程网络营销和网络推广
  • wordpress 4.9中文版seo是付费还是免费推广
  • 惠州做网站的网络推广员工作内容
  • 域名停靠网页应用大全app廊坊seo外包
  • 用asp.net做网站计数器百度seo权重
  • 做视频网站的方法信息发布平台推广有哪些
  • 免费自建手机网站怎么从网上找国外客户
  • 什么是网站建设技术做seo的公司
  • 宁夏网站建设哪个好词语搜索排行
  • 百度推广需要先做网站吗链接制作软件
  • 深圳找人做网站郑州关键词排名外包
  • 中国卫生网seo关键词优化软件
  • 时时彩网站如何做代理西安疫情最新数据
  • 网站制作1000元googleseo优化
  • 做网站的目标是什么产品软文范例500字
  • 有没有教给做宝宝衣服的网站my63777免费域名查询2023年
  • 做纺织的都用什么网站大连seo
  • 重庆做网站价格长沙百度推广开户
  • 网络网站建设价格简单网页制作成品和代码
  • 长沙芙蓉区疫情最新情况山东济南seo整站优化费用
  • 广告制作的软件南京网站seo
  • 自己的电脑做网站国内设计公司前十名
  • 苏州外贸网站建设公司排名淘宝seo 优化软件
  • 做动态网站需要用到哪些语言成功的网络营销案例有哪些
  • 阳江市做网站百度助手下载
  • 郑州英语网站建设谷歌官方网站登录入口
  • 女人与狗做网站互联网营销专业
  • 网站原型图怎么做上海全网营销推广
  • 智能网站建设维护软件网络营销产品