题号:no61

题目名:峰与谷

原题URL:https://leetcode-cn.com/problems/peaks-and-valleys-lcci/

题目描述

在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。

示例

示例 1:

输入: [5, 3, 1, 2, 3]
输出: [5, 1, 3, 2, 3]

限制

  • nums.length <= 10000

思路

1.排序后,从大到小排序,先放满奇数位置,这些做峰,之后再继续从大到小,放满偶数位置,这样可以保证峰->谷

解题代码

public class Solution {public void wiggleSort(int[] nums) {int[] res = new int[nums.length];Arrays.sort(nums);int idx = nums.length-1;//把奇数安排从大到小for (int i = 0; i < res.length;) {res[i]=nums[idx--];i+=2;}//把偶数位置从大到小放入for (int i = 1; i < res.length;) {res[i]=nums[idx--];i+=2;}for (int i = 0; i < nums.length; i++) {nums[i]=res[i];}}
}

[算法练习及思路-程序员面试金典(Java解法)]No61.峰与谷相关推荐

  1. [程序员面试金典][JAVA][第02.01题][移除重复节点][Set][双指针]

    [问题描述][简单] 编写代码,移除未排序链表中的重复节点.保留最开始出现的节点.示例1:输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3] 示例2:输入:[1, 1, 1, 1, 2 ...

  2. C#LeetCode刷题-程序员面试金典

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...

  3. 《程序员面试金典》+《算法导论》

    <程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...

  4. 程序员面试金典——番外篇之下一个较大元素I

    程序员面试金典--番外篇之下一个较大元素I Solution1:我的答案,时间复杂度为O(n2)O(n2)O(n^2) 垃圾算法 class NextElement { public:vector&l ...

  5. 程序员面试金典——17.6最小调整有序

    程序员面试金典--17.6最小调整有序 Solution1:我的答案.垃圾算法 class Rearrange { public:vector<int> findSegment(vecto ...

  6. 程序员面试金典——番外篇之约瑟夫问题1

    程序员面试金典--番外篇之约瑟夫问题1 Solution1:我的答案.脑子是个好东西,希望我总是带着他~ 该算法模拟了游戏过程,不算好. 要理清逻辑关系,因果关系,再下笔~ class Joseph ...

  7. 程序员面试金典——5.3最接近的数

    程序员面试金典--5.3最接近的数 Solution1:把问题想的太简单了,参考书上答案(P166-P170)如下: 书上的思路和算法就很好啊~ class CloseNumber { public: ...

  8. 程序员面试金典 - 面试题 10.11. 峰与谷

    题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 在一个整数数组中,"峰& ...

  9. 程序员面试金典 - 面试题 10.03. 搜索旋转数组

    题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...

最新文章

  1. 粒子物理学有了新的基础数学理论
  2. 设计模式第七讲-责任链模式
  3. bat 域 本机管理员密码_域渗透——Local Administrator Password Solution
  4. java 图形用什么组件标题_java图形用户界面设计Swing常用组件(阅读).ppt
  5. HDFS集中式的缓存管理原理与代码剖析--转载
  6. 新概念 Lesson 7 A new dress 定冠词、不定冠词
  7. java取number长度_Java中常用方法(NumberMath)
  8. 为什么只有360公开支持华为系统,其他公司都不敢表态?
  9. python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...
  10. java excel文件读取的内容_java读取Excel文件指定内容
  11. java如何让源码加密还能运行_如何有效防止Java程序源码被人偷窥?
  12. mac adobe flash builder 4.7 刚装起不来,求助
  13. Linux下局域网通信软件(聊天室,附源码)
  14. 【业余无线电BI1FKP】宝峰UV9R-Plus写频、自制写频线
  15. 手把手教你一整套R语言数据分析+建模流程
  16. 智能网联汽车云控系统第5部分:平台服务场景规范
  17. Migration——迁移
  18. 关于如何将网页做的完整且美观的解决办法
  19. 【HDR学习】HDR视频相关知识讲解(一)
  20. chm文档的编辑办法

热门文章

  1. 手机屏幕关于VGA、QVGA、WVGA、HVGA的区别介绍
  2. 11.1 常用的包(熟悉) | 拉勾Java就业急训营
  3. 足球与oracle系列(2):巴西揭幕战预演,oracle体系结构杂谈
  4. CSS入门、基本选择器和组合选择器
  5. Modelsim使用方法
  6. 纠正你读错的电脑英文词汇--(2)
  7. 全栈工程师眼中的HTTP
  8. unity 震动脚本_Unity - Cinemachine实现相机抖动
  9. PTA 《C语言程序设计(第四版)》 第五章习题【记录】
  10. python科学计算是什么意思_Python科学计算和数据分析(NumPy详细介绍)