当前位置: 首页 > 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]
}

相关文章:

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

题目&#xff1a; 题解&#xff1a; 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[t…...

32、Python之面向对象:对象的表示,再论Python是dict包括语法糖

引言 在前面介绍Python容器的时候&#xff0c;我们曾经用过这种夸张的表述&#xff0c;“Python就是包裹在一堆语法糖中的字典”。虽然夸张&#xff0c;其实更多的是为了突出Python中dict的强大之处。今天这篇文章&#xff0c;打算看下Python中类对象、实例对象的表示及内存管理…...

高级java每日一道面试题-2024年8月07日-网络篇-你对TCP的三次握手了解多少?

如果有遗漏,评论区告诉我进行补充 面试官: 你对TCP的三次握手了解多少? 我回答: TCP&#xff08;Transmission Control Protocol&#xff09;的三次握手是TCP建立连接的过程&#xff0c;它是TCP/IP协议族中一个关键的概念。三次握手确保了双方之间的连接是双向的&#xff0…...

vite.config.ts中proxy的rewrite理解

服务器配置都是在开发情况下适用&#xff01;&#xff01; // 服务器配置 server: {//允许IP访问host: "0.0.0.0",//应用端口&#xff08;默认&#xff1a;3000&#xff09;port: Number(env.VITE_APP_PORT),// 运行是否自动打开浏览器open: true,// 代理配置proxy:…...

大数据环境下用户数据隐私安全防护系统的设计与实现(论文+源码)_kaic

摘 要 现如今互联网已在世界范围内广泛的应用和发展&#xff0c;特别是移动互联网Web 技术快速发展&#xff0c;然而最近几年经常发生互联网用户信息泄露及财产损失问题&#xff0c;网络安全漏洞严重威胁Web应用程序安全及互联网用户的网络使用安全&#xff0c;因此现急需一…...

基于springboot+vue+uniapp的“口腔助手”小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

算法刷题之链表

// 单链表 struct ListNode {int val; // 节点上存储的元素ListNode *next; // 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数 };ListNode* head new ListNode(5); 重要方法&#xff1a;虚拟头节点 个人方法&#xff1a;指针转为数组…...

C# 设计模式之适配器模式

总目录 前言 在实际的开发过程中&#xff0c;由于需求的变化和扩展&#xff0c;我们的代码也需要做相应的扩展。想象这样一个场景&#xff0c;原项目中接口返回的数据是XML格式的数据&#xff0c;但现在来了一个新客户&#xff0c;它期望接口返回的数据类型为json格式的。想要…...

BFS实现迷宫最短路径

结合队列的知识利用 广度优先遍历&#xff0c;通过对能走的路径的记录以及对走过路径的标记&#xff0c;进行多条路搜查 一、理论基础 如下图的迷宫&#xff1a; 选取所走方向&#xff08;针对某一个位置&#xff09;下&#xff0c;右&#xff0c;上&#xff0c;左&#xff0…...

Linux IPC解析:匿名命名管道与共享内存

目录 一.IPC机制介绍二.匿名与命名管道1.匿名管道2.命名管道3.日志 三.共享内存三.System V 标准1.System V简介2.IPC在内核的数据结构设计3.信号量 一.IPC机制介绍 IPC&#xff08;Inter-Process Communication&#xff0c;进程间通信&#xff09;是计算机系统中不同进程之间交…...

Codeforces Round 964 (Div. 4) A~G

封面原图 画师ideolo A - AB Again? 题意 给你一个两位数&#xff0c;把他的个位和十位加起来 代码 #include <bits/stdc.h> using namespace std; typedef long long ll; typedef double db; typedef pair<int,int> pii; typedef pair<ll,ll> pll;voi…...

单体应用提高性能和处理高并发-使用缓存

要在单体应用中实现高并发&#xff0c;并利用缓存技术来提高性能&#xff0c;需要深入了解缓存的应用场景、选择合适的缓存工具&#xff0c;以及在具体代码中实现缓存策略。以下是详细说明如何在单体应用中使用缓存来处理高并发的内容&#xff0c;包括常见的缓存框架和实际的代…...

ollama教程——使用LangChain调用Ollama接口实现ReAct

ollama入门系列教程简介与目录 相关文章: Ollama教程——入门:开启本地大型语言模型开发之旅Ollama教程——模型:如何将模型高效导入到Ollama框架Ollama教程——兼容OpenAI API:高效利用兼容OpenAI的API进行AI项目开发Ollama教程——使用LangChain:Ollama与LangChain的强强…...

【Bug分析】Keil报错:error: #18:expected a “)“问题解决

【Bug分析】Keil报错&#xff1a;error: #18:expected a “&#xff09;”问题解决 前言bug查找bug解决方法小结 前言 keil编译时出现一个问题&#xff0c;缺少一个右括号。然后仔细查看代码&#xff0c;并没有括号缺失。 如下&#xff0c;代码括号正常。 bug查找 站内文章…...

MAC上设置快捷打开终端以及如何运用剪切快捷键

在Mac上设置一个快捷键&#xff0c;在当前文件夹中打开终端&#xff0c;你可以使用Automator创建一个服务&#xff0c;然后将其分配给一个快捷键。以下是步骤&#xff1a; 1. 创建Automator服务 打开 Automator&#xff08;你可以在应用程序文件夹中找到它&#xff0c;或使用…...

linux docker安装 gitlab后忘记root密码如何找回

1. docker ps - a 查看当前gitlab 当前的id2. docker exec -it gitlab /bin/bash 进入docker git 容器中【gitlab 注意可以上图中的name&#xff0c;也可以是id都可以的】,如下图3.gitlab-rails console -e production 输入该指令&#xff0c;启动Ruby on Rails控制台&…...

C语言典型例题27

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题2.4 用下面的scanf函数输入数据 使a3,b7,x8.5,y71.8,c1A,c2a。问在键盘上怎么输入 代码 //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //习题2.4 用下面的scanf函数输入数据&#xff0c;使…...

clion开发stm32f4系列(一)————移植rt-thread os系统

前言 本次使用的rt-thread的版本为5.0.2基于rt-thread sudio生成的源码进行拷贝和修改工程基于上次创建工程的项目进行修改。本次工程只是用了serial和pin组件,其他后面用到再进行添加 拷贝rt-thread源码库 通过CMakeLists来进行管理 顶级(rt-thread目录) cmake_minimum_req…...

计算机网络(网络层)

网络层概述 网络层是干什么的&#xff1f; 网络层的主要任务是实现不同异构网络互连&#xff0c;进而实现数据包在各网络之间的传输相比于数据链路层的以太网通信&#xff0c;网络层则是将一个个数据链路层连接的以太网通过路由器连接起来。从而实现不同数据链路层的互联。 这…...

Python3 第六十六课 -- CGI编程

目录 一. 什么是 CGI 二. 网页浏览 三. CGI 架构图 四. Web服务器支持及配置 五. 第一个CGI程序 5.1. HTTP 头部 5.2. CGI 环境变量 六. GET和POST方法 6.1. 使用GET方法传输数据 6.1.1. 简单的url实例&#xff1a;GET方法 6.1.2. 简单的表单实例&#xff1a;GET方法…...

从领域驱动到本体论:AI 时代的架构方法论变了必

从0构建WAV文件&#xff1a;读懂计算机文件的本质 虽然接触计算机有一段时间了&#xff0c;但是我的视野一直局限于一个较小的范围之内&#xff0c;往往只能看到于算法竞赛相关的内容&#xff0c;计算机各种文件在我看来十分复杂&#xff0c;认为构建他们并能达到目的是一件困难…...

案例速递|手机摄像头模组底壳检测

东莞市沃德普自动化科技有限公司 www.wordop.com 检测背景&#xff1a; 在手机摄像头模组的精密制造流程中&#xff0c;模组底壳是镜头、CMOS传感器、VCM马达的核心承载与定位基准&#xff0c;其表面质量直接决定模组的装配精度、光学性能与长期使用可靠性。 检测需求&#x…...

硬盘出售 / 淘汰必看:3 种安全擦除方法,数据彻底无法恢复

很多人处理旧硬盘时&#xff0c;只做简单格式化就转手&#xff0c;殊不知格式化仅删除文件索引&#xff0c;数据可轻易被恢复&#xff0c;极易造成隐私泄露。本文整理 3 种实用的硬盘安全擦除方案&#xff0c;覆盖免费工具、简易操作&#xff0c;帮你彻底销毁数据&#xff0c;杜…...

OpenClaw+百川2-13B:个人财务管理自动化实践

OpenClaw百川2-13B&#xff1a;个人财务管理自动化实践 1. 为什么需要自动化财务管理 每个月收到银行账单邮件时&#xff0c;我总会被两个问题困扰&#xff1a;一是手动整理消费记录耗时费力&#xff0c;二是很难从零散的交易中看出消费趋势。作为一名技术从业者&#xff0c;…...

Katran性能优化终极指南:10个从驱动模式到通用XDP的核心技巧

Katran性能优化终极指南&#xff1a;10个从驱动模式到通用XDP的核心技巧 【免费下载链接】katran A high performance layer 4 load balancer 项目地址: https://gitcode.com/gh_mirrors/ka/katran Katran作为一款高性能的四层负载均衡器&#xff0c;基于BPF和XDP技术构…...

小红书视频下载神器:三步搞定无水印批量下载,新手也能轻松上手

小红书视频下载神器&#xff1a;三步搞定无水印批量下载&#xff0c;新手也能轻松上手 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果…...

紧急!PHP网关CPU飙升至98%却无堆栈痕迹?锁定glibc malloc arena争用导致的工业级假死现象(现场抓取core dump实录)

第一章&#xff1a;紧急&#xff01;PHP网关CPU飙升至98%却无堆栈痕迹&#xff1f;锁定glibc malloc arena争用导致的工业级假死现象&#xff08;现场抓取core dump实录&#xff09;凌晨三点&#xff0c;某支付网关集群中多台PHP-FPM worker进程CPU持续飙至98%&#xff0c;但 g…...

如何快速掌握BetterGI:面向原神玩家的智能辅助工具终极指南

如何快速掌握BetterGI&#xff1a;面向原神玩家的智能辅助工具终极指南 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游…...

强力解锁:Browsershot - PHP开发者必备的网页截图与PDF生成神器

强力解锁&#xff1a;Browsershot - PHP开发者必备的网页截图与PDF生成神器 【免费下载链接】browsershot Convert HTML to an image, PDF or string 项目地址: https://gitcode.com/gh_mirrors/br/browsershot 在现代Web开发中&#xff0c;网页内容的可视化呈现和文档生…...

AI写PHP代码=埋雷?资深工程师用237个真实项目数据验证:86%的AI生成函数需强制校验,附开源校验器v1.3

第一章&#xff1a;AI写PHP代码埋雷&#xff1f;237项目实证与校验必要性近期对237个真实PHP开源项目&#xff08;涵盖Laravel、Symfony及原生框架&#xff09;的自动化代码审计显示&#xff1a;由主流AI工具生成的PHP代码中&#xff0c;18.6%存在未声明变量导致的运行时错误&a…...