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

做分类信息网站代码网站优化升级

做分类信息网站代码,网站优化升级,wordpress地图定位,学习完成网站建设作业295. 数据流的中位数#xff08;困难#xff09; 题目描述#xff1a; 中位数是有序列表中间的数。如果列表长度是偶数#xff0c;中位数则是中间两个数的平均值。 例如#xff0c; [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 3) / 2 2.5 设计一个支持以下两种操作的数…295. 数据流的中位数困难 题目描述 中位数是有序列表中间的数。如果列表长度是偶数中位数则是中间两个数的平均值。 例如 [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 3) / 2 2.5 设计一个支持以下两种操作的数据结构 void addNum(int num) - 从数据流中添加一个整数到数据结构中。 double findMedian() - 返回目前所有元素的中位数。 考察重点利用sort.IntSlice完成数组的排序并实现小顶堆继承IntSlice完成数组的逆序并实现大顶堆 大小顶堆配合查询中位数声明大顶堆存放较小的一半元素堆顶存放上半区最大元素小顶堆存放较大的一半元素堆顶存放下半区最小元素中位数即是二者均值或大顶堆堆顶元素。 go实现大小顶堆 package DataStructureimport (sort )//真小顶堆 type MinHeap struct {sort.IntSlice }func NewMinHeap() *MinHeap {return MinHeap{IntSlice: sort.IntSlice{}} }func (h *MinHeap) Push(a interface{}) {h.IntSlice append(h.IntSlice, a.(int)) }func (h *MinHeap) Pop() interface{} {a : h.IntSlicev : a[len(a)-1]h.IntSlice a[:len(a)-1]return v }type ReverseIntSlice []intfunc (x ReverseIntSlice) Len() int { return len(x) } func (x ReverseIntSlice) Less(i, j int) bool { return x[i] x[j] } func (x ReverseIntSlice) Swap(i, j int) { x[i], x[j] x[j], x[i] }type MaxHeap struct {ReverseIntSlice }func NewMaxHeap() *MaxHeap {return MaxHeap{ReverseIntSlice: ReverseIntSlice{}} }func (h *MaxHeap) Push(a interface{}) {h.ReverseIntSlice append(h.ReverseIntSlice, a.(int)) }func (h *MaxHeap) Pop() interface{} {a : h.ReverseIntSlicev : a[len(a)-1]h.ReverseIntSlice a[:len(a)-1]return v }//这只是一个用sort方法仿制的堆耗时仍然等于对一个数组进行排序 type Heap struct {HeapItem sort.IntSlice }func NewHeap() (h *Heap) {return Heap{HeapItem: sort.IntSlice{}} }func (h *Heap) Push(a int) {h.HeapItem append(h.HeapItem, a)sort.Sort(h.HeapItem) }func (h *Heap) Pop() int {temp : h.HeapItem[0]h.HeapItem h.HeapItem[1:]return temp }实现中位数查找 package leetcodeProjectimport (container/heapd DataStructure )type MedianFinder struct {MaxItem *d.MaxHeap //声明一个大顶堆一个小顶堆 大顶堆用来存放前一半比较小的数小顶堆用来存放后一半比较大的数即小顶堆堆顶大于大顶堆堆顶MinItem *d.MinHeap }func Constructor6() MedianFinder {return MedianFinder{MaxItem: d.NewMaxHeap(), MinItem: d.NewMinHeap()} }/**先将新元素加入大顶堆再将大顶堆堆顶元素最大值加入小顶堆始终保证大顶堆元素小顶堆元素||小顶堆元素1否则将小顶堆堆顶最小值加入大顶堆比如 3,4,1,23 3加入大堆 3加入小堆 “小堆多于大堆” 3加入大堆 小 大34 4加入大堆 4加入小堆 “小堆等于大堆” 小4 大31 1加入大堆 3加入小堆 “小堆多于大堆” 3加入大堆 小4 大1 32 2加入大堆 3加入小堆 “小堆等于大堆” 小4 3 大1 2 */ func (h *MedianFinder) AddNum(num int) {heap.Push(h.MaxItem, num)heap.Push(h.MinItem, heap.Pop(h.MaxItem).(int))if h.MaxItem.Len() h.MinItem.Len() {heap.Push(h.MaxItem, heap.Pop(h.MinItem).(int))} }func (h *MedianFinder) FindMedian() float64 {if h.MaxItem.Len() h.MinItem.Len() {return float64(h.MaxItem.ReverseIntSlice[0]h.MinItem.IntSlice[0]) / 2}return float64(h.MaxItem.ReverseIntSlice[0]) }
http://www.pierceye.com/news/401088/

相关文章:

  • 做微信头图的网站网页编程语言有哪几种
  • 医生工作室网站建设男女激烈做羞羞事网站网站韩剧
  • 网站里面网友点评怎么做网站开发需要资质吗
  • gta 买房网站建设中软件下载免费大全网站
  • 中国移动网站专门拍短视频的公司
  • 网站制作网站建设报价南通优化网站怎么收费
  • 网站的连接二维码怎么做wordpress.org账号
  • 优秀的网站有哪些内容wordpress重新安装删除哪个文件
  • 网站建设与发布需要什么手机端开发app
  • 无锡做网站无锡网站设计2345网址导航手机上网导航下载
  • html中文美食网站营销型网站维护费用
  • 电商网站建设课设用什么软件制作网站
  • 杭州手机网站wordpress随机调用页面
  • html5网站编写长网页网站
  • 订餐网站系统建设方案建一个网上商城需要多少钱
  • 手机网站asp付费抽奖网站怎么做
  • 国际网站哪里做vs2010 c 建设网站
  • 企业网站更新什么内容永城做网站
  • wordpress 众筹网站模板html5风格网站特色
  • 服装设计参考网站重庆景点排名
  • 网至普的营销型网站建设扬州网站商城建设价格表
  • 成品网站价格表简答网站内容建设的时候内链重要性
  • 视频链接生成器某网站搜索引擎优化
  • flash网站案例vi设计是设计什么
  • ip查询网站备案查询企业网络营销推广平台
  • 多城市网站建设免费制作小程序的平台
  • 郑州网站建设出名吗?wordpress获取登录密码
  • 网站建设论文的开题报告重庆市工程建设信息
  • 商务网站设计方案门户网站的优点
  • 河津网站制作wampserver做的网站