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

Golang | Leetcode Golang题解之第324题摆动排序II

题目:

题解:

func wiggleSort(nums []int) {n := len(nums)x := (n + 1) / 2target := quickSelect(nums, x-1)transAddress := func(i int) int { return (2*n - 2*i - 1) % (n | 1) }for k, i, j := 0, 0, n-1; k <= j; k++ {tk := transAddress(k)if nums[tk] > target {for j > k && nums[transAddress(j)] > target {j--}tj := transAddress(j)nums[tk], nums[tj] = nums[tj], nums[tk]j--}if nums[tk] < target {ti := transAddress(i)nums[tk], nums[ti] = nums[ti], nums[tk]i++}}
}func quickSelect(a []int, k int) int {rand.Seed(time.Now().UnixNano())rand.Shuffle(len(a), func(i, j int) { a[i], a[j] = a[j], a[i] })for l, r := 0, len(a)-1; l < r; {pivot := a[l]i, j := l, r+1for {for i++; i < r && a[i] < pivot; i++ {}for j--; j > l && a[j] > pivot; j-- {}if i >= j {break}a[i], a[j] = a[j], a[i]}a[l], a[j] = a[j], pivotif j == k {break} else if j < k {l = j + 1} else {r = j - 1}}return a[k]
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • mysql如何储存大量数据,分库存分表的建议和看法
  • gbd的概念与常用指令
  • 【Linux基础】Linux基本指令(一)
  • 小米教你:2GB内存搞定20亿数据的高效算法
  • 【C++】vector 的模拟实现
  • 从0开始的算法(数据结构和算法)基础(七)
  • Unity Addressables bundle依赖查看和资源重复查看工具
  • linux 多进程搭建webserver
  • MinGW-w64编译安装Acise
  • 维吉尼亚密码加解密实现(python)
  • Android 12系统源码_多屏幕(一)多屏幕设备显示Activity
  • 超声波眼镜清洗机哪个性价比高?2024推荐四款清洁力高的超声波清洗机
  • 第十一章:图论part06 108.冗余连接 109.冗余连接II (补)
  • 3、pnpm yarn npm
  • MySQL笔记(十):视图
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • angular学习第一篇-----环境搭建
  • leetcode388. Longest Absolute File Path
  • php的插入排序,通过双层for循环
  • spring-boot List转Page
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • vue自定义指令实现v-tap插件
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 正则表达式小结
  • 白色的风信子
  • 【云吞铺子】性能抖动剖析(二)
  • kubernetes资源对象--ingress
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $.proxy和$.extend
  • (20)docke容器
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (三) diretfbrc详解
  • (三)elasticsearch 源码之启动流程分析
  • (十)c52学习之旅-定时器实验
  • (一)SpringBoot3---尚硅谷总结
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net framework 4.8 开发windows系统服务
  • .net MySql
  • .net 反编译_.net反编译的相关问题
  • @Documented注解的作用
  • @ohos.systemParameterEnhance系统参数接口调用:控制设备硬件(执行shell命令方式)
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [04] Android逐帧动画(一)
  • [1127]图形打印 sdutOJ
  • [2023年]-hadoop面试真题(一)
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [AHK V2]鼠标悬停展开窗口,鼠标离开折叠窗口
  • [BZOJ] 1001: [BeiJing2006]狼抓兔子
  • [C#][opencvsharp]opencvsharp sift和surf特征点匹配
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法