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

[LeetCode] Wiggle Sort

Wiggle Sort

Given an unsorted array nums, reorder it in-place such that

nums[0] <= nums[1] >= nums[2] <= nums[3]....

Time Complexity
O(N)
Space Complexity
O(1)

思路

是medium的题目,其实很简单,就是找规律。
每一个数字和前一个数字进行比较,用i % 2 == 0来判断是偶数位还是奇数位,如果是偶数位,那么它要比前面一个数字大;如果是奇数位,那么它要比前面的数字小。符号要求的continue,不符合的就和前面的一个数字swap。这样子做对于3个数字,中间的数字一定会变成最大的。

代码

public void wiggleSort(int[] nums) {
    // Write your code here
    // if(nums == null || nums.length <= 2) return;
    for(int i = 1; i < nums.length; i++){
        if(i % 2 == 0){
            if(nums[i] < nums[i - 1]) continue;
            else swap(nums, i , i - 1);
        }else{
            if(nums[i] > nums[i - 1]) continue;
            else swap(nums, i , i - 1);
        }
    }
}

private void swap(int[] nums, int i, int j){
    int temp = nums[i];
    nums[i] = nums[j];
    nums[j] = temp;
}

相关文章:

  • ASP得到当前页面完整地址
  • Photoshop脚本 关闭所有已打开的文档
  • oop_day06_抽象类、接口_20150814
  • 电商直播ios app耗电发热比较评测
  • C# 中的委托和事件
  • 【extjs6学习笔记】1.6 初始:本地化
  • 我所知道的SharePoint feature(1)
  • 新增题目功能模块总结
  • 手机的各项性能测试
  • MyEclipse 历史版本
  • INSERT 失败,因为下列 SET 选项的设置不正确: 'ARITHABORT'
  • TCP/IP协议三次握手与四次握手流程解析
  • raid卡电池问题
  • JavaScript中的闭包
  • 微软将为 Linux 用户带来令人振奋的消息
  • [PHP内核探索]PHP中的哈希表
  • 【翻译】babel对TC39装饰器草案的实现
  • 2017前端实习生面试总结
  • es的写入过程
  • HTML-表单
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java编程基础24——递归练习
  • Logstash 参考指南(目录)
  • nginx 配置多 域名 + 多 https
  • node-glob通配符
  • PaddlePaddle-GitHub的正确打开姿势
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Rancher-k8s加速安装文档
  • sublime配置文件
  • Unix命令
  • vue学习系列(二)vue-cli
  • WebSocket使用
  • 基于 Babel 的 npm 包最小化设置
  • 浅谈web中前端模板引擎的使用
  • 微服务核心架构梳理
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 阿里云服务器如何修改远程端口?
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 回归生活:清理微信公众号
  • ​iOS安全加固方法及实现
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (多级缓存)多级缓存
  • (力扣题库)跳跃游戏II(c++)
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)基于IDEA的JAVA基础12
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)大型网站的系统架构
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...