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

网站做外链什么意思静态网站怎么更新

网站做外链什么意思,静态网站怎么更新,网站开发的主要流程,修改备案网站信息堆作用 Golang 的堆是用二叉树来实现#xff0c;heap包实现了保证根节点为最大/最小值即大根堆/小根堆#xff0c;而后续其他的节点顺序不能保证#xff0c;要想严格排序#xff0c;需要自行实现额外逻辑。使用场景 最为经典的场景就是寻找最大或最小值用法 实现 heap.I…堆作用 Golang 的堆是用二叉树来实现heap包实现了保证根节点为最大/最小值即大根堆/小根堆而后续其他的节点顺序不能保证要想严格排序需要自行实现额外逻辑。使用场景 最为经典的场景就是寻找最大或最小值用法 实现 heap.Interface接口必须使用heap.Init初始化必须通过heap.Push和heap.Pop接口来添加删除元素 var _ heap.Interface (*hp)(nil)type hp struct {sort.IntSlicedata []int }func (h *hp) Push(x any) {h.IntSlice append(h.IntSlice, x.(int)) }func (h *hp) Pop() any {h.IntSlice h.IntSlice[:len(h.IntSlice)-1]return h.IntSlice[0] }func (h *hp) Less(i, j int) bool {return h.data[h.IntSlice[i]] h.data[h.IntSlice[j]] }func maxSlidingWindow(nums []int, k int) []int {h : hp{make(sort.IntSlice, k),nums,}for i : 0; i k; i {h.IntSlice[i] i}heap.Init(h)r : make([]int, 0, len(nums)-k1)r append(r, h.data[h.IntSlice[0]])for j : k; j len(nums); j {heap.Push(h, j)for h.IntSlice[0] j-k {heap.Pop(h)}r append(r, h.data[h.IntSlice[0]])}return r }核心源码 // Interface 堆的底层数据结构为二叉树 type Interface interface {sort.InterfacePush(x any) // 添加元素Pop() any // 移除并返回元素 }// Init 方法初始化后保证父节点和子节点是有序的不同层数据是有序的 func Init(h Interface) {// heapifyn : h.Len()for i : n/2 - 1; i 0; i-- { // 循环的数据为 除了叶子节点以外所有的节点保证所有节点都是有序down(h, i, n)} }// 插入元素并把当前元素上浮到合适位置 func Push(h Interface, x any) {h.Push(x)up(h, h.Len()-1) }// Pop 移除根节点 // 把根节点移到尾部并把尾部节点下沉到合适位置 func Pop(h Interface) any {n : h.Len() - 1h.Swap(0, n)down(h, 0, n)return h.Pop() }// Remove 把待删除节点和尾部节点交换并把尾部节点上浮或者下沉到合适位置 func Remove(h Interface, i int) any {n : h.Len() - 1if n ! i {h.Swap(i, n)if !down(h, i, n) {up(h, i)}}return h.Pop() }// Fix 对于任意节点重新寻找位置下沉、上浮 func Fix(h Interface, i int) {if !down(h, i, h.Len()) {up(h, i)} }// up // // Description: j 节点 上浮 // param h: 堆 // param j: 待操作节点 func up(h Interface, j int) {for {i : (j - 1) / 2 // 父节点if i j || !h.Less(j, i) {break}h.Swap(i, j)j i} }// down 方法 // // Description: 当前节点i0 根据大小关系是否下沉直到叶子节点 // param h: 堆 // param i0: 当前待处理节点 // param n节点数量 // return bool: 是否进行了下沉 func down(h Interface, i0, n int) bool {i : i0for {j1 : 2*i 1 // i 的左子节点if j1 n || j1 0 { // j1 0 after int overflow //保证左子节点存在/有效break}j : j1 // left childif j2 : j1 1; j2 n h.Less(j2, j1) { // j2 为i的右子节点j j2 // 2*i 2 // right child}if !h.Less(j, i) {break}h.Swap(i, j)i j}return i i0 }
http://www.zqtcl.cn/news/337239/

相关文章:

  • 商丘做网站的价格专业网站制作哪家强
  • 瑞安微信网站软件公司网站设计与制作
  • 片头网站网站建设服装在线商城实训报告
  • wordpress做企业网站怎样做网页推广
  • 网站建设售后服务安全维护企业网站开发 外文文献
  • 网站设计英文翻译系统开发的五个阶段
  • 成华区门户网站拍卖网站开发多少钱
  • html设计网站wordpress 评论增加字段
  • 搭建正规网站小程序开发难不难
  • 做静态网站用什么软件自己编写代码建设微网站
  • 备案网站ipoa系统主要干什么的
  • 杭州专业网站建设在哪里wordpress主题重置
  • 仿wordpress站赣州专业网站推广
  • 网站开发需要多长时间python链接wordpress
  • 网上交易网邯郸网站seo
  • wordpress图片后加载外链seo服务
  • 婚庆公司网站建设腾讯广告建站工具
  • 焦作建设厅网站wordpress调用视频播放器
  • 网站版面做好江苏省建设工程设计施工图审核中心网站
  • 智能网站平台wordpress同步头条
  • 做采集的网站有流量吗广州建设学校
  • 建设部网站公告外贸网站建设定制
  • 如何搭建 seo网站上海市住房与城乡建设部网站
  • 百度搜不到自己的网站python云服务器网站开发实例
  • 给企业做网站的业务员优书网没了
  • 江门网站建设方案外包洛阳网站设计哪家专业
  • 电暖怎么做网站办公室平面设计图
  • 全屏网站 功能丽水市企业网站建设 微信营销 影视拍摄
  • 天天爱天天做视频网站网站推送
  • 制作企业网站与app有什么不同化工企业网站建设