题目

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

思路

其实乍一看,我没明白题意,什么叫“将该数组按峰与谷的交替顺序排序”?后来看了题解,才知道,就是把一个数组按照峰-谷-峰-谷-……这样的次序来排列。

代码

class Solution:def wiggleSort(self, nums):for i in nums:# 对于奇数下标数字,查看它是否小于右侧数字,小于则与右侧数字更换位置,造成一个“峰”:if i % 2 != 0:if nums[i] < nums[i+1]:nums[i], nums[i+1] = nums[i+1], nums[i]else:# 对于偶数下标数字,查看它是否大于右侧数字,大于则与右侧数字更换位置,造成一个“谷”:if nums[i] > nums[i+1]:nums[i], nums[i+1] = nums[i+1], nums[i]

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/peaks-and-valleys-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

力扣leetcode之10.11峰与谷相关推荐

  1. 力扣 面试题 10.11. 峰与谷

    题目 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{ ...

  2. 面试题 10.11. 峰与谷 ( 思维 )

    LeetCode:面试题 10.11. 峰与谷 有点巧妙, 一开始弄复杂了,想着先把峰和谷存在两个 list 中, 然后再覆盖原数组, 然后发现有些样例的数中既不是峰也不是谷的( 如: nums[i− ...

  3. 面试题 10.11. 峰与谷

    面试题 10.11. 峰与谷 [中等题][数组] 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5 ...

  4. 面试题 10.11. 峰与谷-快速排序

    面试题 10.11. 峰与谷-快速排序 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5, 8, ...

  5. 【程序员面试金典】面试题 10.11. 峰与谷

    [程序员面试金典]面试题 10.11. 峰与谷 题目描述 解题思路 题目描述 描述:在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等 ...

  6. 【LeetCode】面试题 10.11. 峰与谷

    在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5, 8, 6, 2, 3, 4, 6}中,{8, ...

  7. LeetCode——面试题 10.11. 峰与谷(JAVA)

    在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5, 8, 6, 2, 3, 4, 6}中,{8, ...

  8. 程序员面试金典 - 面试题 10.11. 峰与谷(排序/不排序)

    1. 题目 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素. 例如,在数组{5, 8, 2, 6, 3, 4, 3 ...

  9. 面试题 10.11. 峰与谷-贪心-Java

    1.题目 2.思路 一定是要读懂题意!读懂题意!读懂题意!重要的事情说三遍.理解以下几个问题 什么是峰? 小大小.这个大的数就是峰.比如1,3,2中3就是峰.这里就是谷峰谷. 什么是谷? 大小大.这个 ...

最新文章

  1. html搜狐热搜列表仿写,GRE高分范文不能看过就算 学会仿写才能带来真正提高
  2. matlab对比度锐化,对比度、清晰度与锐化的理解
  3. UA MATH567 高维统计III 随机矩阵10 亚高斯矩阵的应用:协方差估计与聚类问题的样本量需求计算
  4. 【阿里云课程】生成模型之GAN优化目标设计与改进
  5. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-8底层驱动之RTC
  6. eclipse生成boolean型变量的getter是is开头
  7. Docker的常规应用手册
  8. Qt Creator 添加自定义注释
  9. 我的第一个keil工具写的汇编
  10. 敏捷开发系列之旅 第四站(透明的Crystal水晶方法) .
  11. 民企信息化建设个人经历(二)
  12. 考研-作息时间安排表(总结)
  13. 部署Hyper -V实现桌面虚拟化
  14. 6月15号MOVE PROTOCOL上线测试版,如何参与呢?
  15. 初学者学习JS很吃力怎么办?到底该如何学习JS?
  16. 蜂巢迷宫 c语言,最强大脑的蜂巢迷宫 创意源于此
  17. EasyExcel 实现批量合并单元格(支持自定义)
  18. 何学林:房价为什么降不下来?房价上涨的刚性是由强大的利益共同体共同作用的结果(原创首发,深度好文)——何学林房地产大策划之十二
  19. Ubuntu各个版本下载
  20. FreeBSD install

热门文章

  1. (SEED-LabCross-Site Scripting (XSS) Attack Lab跨站脚本攻击实验
  2. 发送打印命令后打印机没反应,重启打印机之后才能打印
  3. springboot 之 微服务调用 之 链路追踪
  4. ArduinoIDE初步开发ESP8266时钟
  5. 大学计算机基础课后题答案中国铁道出版社,大学计算机基础 铁道出版社 2015年第1版 第7章 习题答案...
  6. desktop不可用。如果该位置位于这台电脑上,请确保设备或驱动器已连接,或者光盘已插入。如果该位置位于网络上请确保已连接到网络或Internet,然后重试。如果仍然找不到该位置,则他可能已移动或删除
  7. 【洛谷】P1462 通往奥格瑞玛的道路
  8. 区块链报告会心得体会3000_讲座心得体会3000
  9. python numpy 获得数组的行和列(三种方法)
  10. STC15f2k60s2C语言定时器2,STC15F2K60S2 定时器2测试C.doc