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

静态网站模板中英文网页和站点的区别

静态网站模板中英文,网页和站点的区别,wordpress mu调取,西部网站域名出售目录 题目:在数组中找第K大的元素解法1:维护长度为k的最小堆,遍历n-k个元素,逐一和堆顶值对比后,和堆顶交换,最后返回堆顶复杂度:时间复杂度 O ( k ( n − k ) l o g k ) O(k(n-k)logk) O(k(n−…

目录

题目:在数组中找第K大的元素

题目链接:LeetCode-215. 数组中的第K个最大元素
在这里插入图片描述

解法1:维护长度为k的最小堆,遍历n-k个元素,逐一和堆顶值对比后,和堆顶交换,最后返回堆顶

复杂度:时间复杂度 O ( k + ( n − k ) l o g k ) O(k+(n-k)logk) O(k+(nk)logk)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func findKthLargest(nums []int, k int) int {length := len(nums)if k > length {return -1}makeMinHeap(nums, k)for i:=k;i<length;i++ {if nums[i] > nums[0] {nums[0], nums[i] = nums[i], nums[0]minHeap(nums, 0, k)}}return nums[0]
}func makeMinHeap(arr []int, length int) {// 从最后一个非叶子节点开始for i:=(length/2-1); i>=0; i-- {minHeap(arr, i, length)}
}// 最小堆化
func minHeap(arr []int, i int, length int) {left, right := 2*i+1, 2*i+2min := iif left < length && arr[left] < arr[min] {min = left}if right < length && arr[right] < arr[min] {min = right}if min != i {arr[i], arr[min] = arr[min], arr[i]minHeap(arr, min, length)}
}

解法2:构建长度为n的最大堆,遍历k次,每次删除堆顶,且堆长度-1,最后返回堆顶(k较小时此法更优)

复杂度:时间复杂度 O ( n + k l o g n ) O(n+klogn) O(n+klogn)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func findKthLargest(nums []int, k int) int {length := len(nums)if k > length {return -1}// 将nums构建为一个最大堆makeMaxHeap(nums, length)for i:=1; i<k; i++ {nums[0], nums[length-i] = nums[length-i], nums[0]maxHeap(nums, 0, length-i)}return nums[0]
}// 最大堆
func makeMaxHeap(arr []int, length int) {// 第一个非叶子节点for i:=(length/2-1); i>=0; i-- {maxHeap(arr, i, length)}
}
// 最大堆化
func maxHeap(arr []int, i int, length int) {l, r, max := 2*i+1, 2*i+2, iif l<length && arr[l] > arr[max] {max = l}if r<length && arr[r] > arr[max] {max = r}if max != i {arr[max], arr[i] = arr[i], arr[max]maxHeap(arr, max, length)}
}

题目:堆排序

题目链接:LeetCode-912. 排序数组
在这里插入图片描述

思路分析:构建长度为n的最大堆,依次删除堆顶并逆序放到数组尾部,且堆长度-1,n-1次后数组则为升序

复杂度:时间复杂度 O ( n l o g ( n ) ) O(nlog(n)) O(nlog(n))、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func sortArray(nums []int) []int {length := len(nums)if length == 1 {return nums}makeMaxHeap(nums, length)for i:=length-1; i>0; i-- {nums[0], nums[i] = nums[i], nums[0]maxHeap(nums, 0, i)}return nums
}
// 构建最大堆
func makeMaxHeap(nums []int, length int) {// 第一个非叶子结点for i:=length/2-1; i>=0; i-- {maxHeap(nums, i, length)}
}
// 最大堆化
func maxHeap(nums []int, i int, length int) {l, r, max := 2*i+1, 2*i+2, iif l<length && nums[l] > nums[max] {max = l}if r<length && nums[r] > nums[max] {max = r}if max != i {nums[max], nums[i] = nums[i], nums[max]maxHeap(nums, max, length)}
}

题目:合并K个排序链表

题目链接:LeetCode-23. 合并 K 个升序链表
在这里插入图片描述

思路分析:维护长度为k的最小堆,依次删除堆顶接到返回链表上(纵向拼接),注意取值时判断空链表

复杂度:时间复杂度 O ( k + n l o g k ) O(k+nlogk) O(k+nlogk)、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

/*** Definition for singly-linked list.* type ListNode struct {*     Val int*     Next *ListNode* }*/
func mergeKLists(lists []*ListNode) *ListNode {length := len(lists)if length == 1 {return lists[0]}// 去除空数组for i:=0; i<length; i++ {if lists[i] == nil {lists[i], lists[length-1] = lists[length-1], lists[i]length--i--}}newList := &ListNode{}tmp := newList// 最小化makeMinHeap(lists, length)for length > 0 && lists[0] != nil {// 取出当前最小tmp.Next = &ListNode{Val:lists[0].Val}tmp = tmp.Nextlists[0] = lists[0].Nextif lists[0] == nil {lists[0], lists[length-1] = lists[length-1], lists[0]length--}if length > 0 && lists[0] != nil {minHeap(lists, 0, length)}}return newList.Next
}func makeMinHeap(arr []*ListNode, length int) {for i:=length/2-1; i>=0; i-- {minHeap(arr, i, length)}
}func minHeap(arr []*ListNode, i, length int) {left, right, min := 2*i+1, 2*i+2, iif left<length && arr[left].Val < arr[min].Val {min = left}if right<length && arr[right].Val < arr[min].Val {min = right}if min != i {arr[min], arr[i] = arr[i], arr[min]minHeap(arr, min, length)}
}
http://www.yayakq.cn/news/249843/

相关文章:

  • 网站建设项目申请书房产网签合同
  • 为企业推广优化英语
  • 站长工具成品源码许昌网站建设汉狮怎么样
  • 奇月网络官方网站平面设计专业就业前景和就业方向
  • 天津综合网站建设商店jsp网站开发视频教程
  • 湛江网站建设维护免费p2p网站建设
  • 临沂建设工程招聘信息网站网站全站模板
  • 网站建设业务的延伸性中国电信网站备案 锁定
  • 一家做运动鞋的网站好区网站制作
  • 建设工程信息服务平台新网站html转化wordpress
  • 给用ps做的网站加div学用php做网站
  • 网站主持人网站空间商盗取数据
  • 网站建设咨询哪家性价比高天元建设集团有限公司鲁班奖
  • 用jsp做的二手交易网站广东省建设厅人才网站
  • 一级a做爰片免费网站 小说阿里云网站备案查询
  • 企业网站优化电话我想做社区团购怎么做
  • 网站建设公司软jian湖南岚鸿在本地怎么做网站
  • 网站建设五行做网站制作一般多少钱
  • 汕头网站定制深圳高端别墅设计公司
  • 17网站一起做网店东莞有没有帮忙做问卷调查的网站
  • 淘宝客cms网站模板下载购物网站开发的业务需求分析
  • 荆州市住房和城乡建设厅官方网站wordpress audaz主题
  • 乐山住房和规划建设局门户网站多站点cms
  • 没有虚拟主机怎么建网站网站维护和建设工作范围
  • 营销网站参考wordpress获取根目录路径
  • 网站建设英语怎么说西宁建设网站
  • 企业网站对企业有什么好处瑞华特散热器网站谁给做的
  • 网站建设学生作业成品网站集约化建设工作总结
  • dede做网站响应式网站div居中
  • 二手车网站策划wordpress上传小视频教程