力扣leetcode之10.11峰与谷
题目
在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{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峰与谷相关推荐
- 力扣 面试题 10.11. 峰与谷
题目 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{ ...
- 面试题 10.11. 峰与谷 ( 思维 )
LeetCode:面试题 10.11. 峰与谷 有点巧妙, 一开始弄复杂了,想着先把峰和谷存在两个 list 中, 然后再覆盖原数组, 然后发现有些样例的数中既不是峰也不是谷的( 如: nums[i− ...
- 面试题 10.11. 峰与谷
面试题 10.11. 峰与谷 [中等题][数组] 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5 ...
- 面试题 10.11. 峰与谷-快速排序
面试题 10.11. 峰与谷-快速排序 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5, 8, ...
- 【程序员面试金典】面试题 10.11. 峰与谷
[程序员面试金典]面试题 10.11. 峰与谷 题目描述 解题思路 题目描述 描述:在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等 ...
- 【LeetCode】面试题 10.11. 峰与谷
在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5, 8, 6, 2, 3, 4, 6}中,{8, ...
- LeetCode——面试题 10.11. 峰与谷(JAVA)
在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素.例如,在数组{5, 8, 6, 2, 3, 4, 6}中,{8, ...
- 程序员面试金典 - 面试题 10.11. 峰与谷(排序/不排序)
1. 题目 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素. 例如,在数组{5, 8, 2, 6, 3, 4, 3 ...
- 面试题 10.11. 峰与谷-贪心-Java
1.题目 2.思路 一定是要读懂题意!读懂题意!读懂题意!重要的事情说三遍.理解以下几个问题 什么是峰? 小大小.这个大的数就是峰.比如1,3,2中3就是峰.这里就是谷峰谷. 什么是谷? 大小大.这个 ...
最新文章
- html搜狐热搜列表仿写,GRE高分范文不能看过就算 学会仿写才能带来真正提高
- matlab对比度锐化,对比度、清晰度与锐化的理解
- UA MATH567 高维统计III 随机矩阵10 亚高斯矩阵的应用:协方差估计与聚类问题的样本量需求计算
- 【阿里云课程】生成模型之GAN优化目标设计与改进
- 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-8底层驱动之RTC
- eclipse生成boolean型变量的getter是is开头
- Docker的常规应用手册
- Qt Creator 添加自定义注释
- 我的第一个keil工具写的汇编
- 敏捷开发系列之旅 第四站(透明的Crystal水晶方法) .
- 民企信息化建设个人经历(二)
- 考研-作息时间安排表(总结)
- 部署Hyper -V实现桌面虚拟化
- 6月15号MOVE PROTOCOL上线测试版,如何参与呢?
- 初学者学习JS很吃力怎么办?到底该如何学习JS?
- 蜂巢迷宫 c语言,最强大脑的蜂巢迷宫 创意源于此
- EasyExcel 实现批量合并单元格(支持自定义)
- 何学林:房价为什么降不下来?房价上涨的刚性是由强大的利益共同体共同作用的结果(原创首发,深度好文)——何学林房地产大策划之十二
- Ubuntu各个版本下载
- FreeBSD install
热门文章
- (SEED-LabCross-Site Scripting (XSS) Attack Lab跨站脚本攻击实验
- 发送打印命令后打印机没反应,重启打印机之后才能打印
- springboot 之 微服务调用 之 链路追踪
- ArduinoIDE初步开发ESP8266时钟
- 大学计算机基础课后题答案中国铁道出版社,大学计算机基础 铁道出版社 2015年第1版 第7章 习题答案...
- desktop不可用。如果该位置位于这台电脑上,请确保设备或驱动器已连接,或者光盘已插入。如果该位置位于网络上请确保已连接到网络或Internet,然后重试。如果仍然找不到该位置,则他可能已移动或删除
- 【洛谷】P1462 通往奥格瑞玛的道路
- 区块链报告会心得体会3000_讲座心得体会3000
- python numpy 获得数组的行和列(三种方法)
- STC15f2k60s2C语言定时器2,STC15F2K60S2 定时器2测试C.doc