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

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

题目:

题解:

def quickSelect(a: List[int], k: int) -> int:seed(datetime.datetime.now())shuffle(a)l, r = 0, len(a) - 1while l < r:pivot = a[l]i, j = l, r + 1while True:i += 1while i < r and a[i] < pivot:i += 1j -= 1while j > l and a[j] > pivot:j -= 1if i >= j:breaka[i], a[j] = a[j], a[i]a[l], a[j] = a[j], pivotif j == k:breakif j < k:l = j + 1else:r = j - 1return a[k]class Solution:def wiggleSort(self, nums: List[int]) -> None:n = len(nums)x = (n + 1) // 2target = quickSelect(nums, x - 1)transAddress = lambda i: (2 * n - 2 * i - 1) % (n | 1)k, i, j = 0, 0, n - 1while k <= j:tk = transAddress(k)if nums[tk] > target:while j > k and nums[transAddress(j)] > target:j -= 1tj = transAddress(j)nums[tk], nums[tj] = nums[tj], nums[tk]j -= 1if nums[tk] < target:ti = transAddress(i)nums[tk], nums[ti] = nums[ti], nums[tk]i += 1k += 1
http://www.lryc.cn/news/421079.html

相关文章:

  • IGModel——提高基于 GNN与Attention 机制的方法在药物发现中的实用性
  • AArch64中的寄存器
  • 树莓派Pico 2来了
  • LeetCode面试题Day7|LeetCode135 分发糖果、LeetCode42 接雨水
  • [免费]适用于 Windows 10 的十大数据恢复软件
  • Win11+docker+vscode配置anomalib并训练自己的数据(3)
  • Java | Leetcode Java题解之第332题重新安排行程
  • 招聘公告|健安环保科技(广东)有限公司
  • 小程序的安全设计
  • 【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
  • Kubernetes—k8s集群存储卷(pvc存储卷)
  • 用网格大师转换的3D Tiles数据,在进行了顶点重建后,尝试加载到Cesium中却无法显示内容。应该如何解决这一问题?
  • display:flex布局,最简单的案例
  • SQL注入实例(sqli-labs/less-17)
  • HTML+CSS+JS计算器
  • EasyCVR视频汇聚平台云计算技术核心优势:高效、灵活与可扩展性深度解读
  • JavaScript高阶笔记总结(Xmind格式):第一天
  • 十三、代理模式
  • Unity物理模块 之 2D效应器
  • 一款手机壳凭什么卖800元?Casetify品牌策略全解析 | 品牌出海
  • 【Rust光年纪】并发编程利器:探索 Rust 异步库与并行处理工具
  • 机器学习第一课
  • C语言典型例题32
  • 第二十五天学习笔记2024.8.9
  • sqlserver将一张表导出成txt
  • YOLOv8+DeepSort实现
  • 「链表」链表原地算法合集:原地翻转|原地删除|原地取中|原地查重 / LeetCode 206|237|2095|287(C++)
  • 【STM32】SPI通信和RTC实时时钟
  • DAMA学习笔记(十三)-大数据和数据科学
  • 【Java】Java 中的 toLowerCase() 方法详解