【程序员面试金典】面试题 10.11. 峰与谷
【程序员面试金典】面试题 10.11. 峰与谷
- 题目描述
- 解题思路
题目描述
描述:在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。
示例:
输入: [5, 3, 1, 2, 3]
输出: [5, 1, 3, 2, 3]
提示:
nums.length <= 10000
解题思路
思路1:最直观的想法是,先将数组排序,接着隔一个交换相邻的两个元素。比如1 2 3 4 5 6,那么交换1和2得到2 1 3 4 5 6,接着交换3和4得到2 1 4 3 5 6,最后交换5和6得到2 1 4 3 6 5即可满足峰与谷。
void wiggleSort(vector<int>& nums)
{sort(nums.begin(),nums.end());for(int i=0;i+1<nums.size();i+=2){swap(nums[i],nums[i+1]);}
}
总结:先排序再打散!
【程序员面试金典】面试题 10.11. 峰与谷相关推荐
- 程序员面试金典 - 面试题 10.11. 峰与谷
题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 在一个整数数组中,"峰& ...
- 程序员面试金典 - 面试题 10.11. 峰与谷(排序/不排序)
1. 题目 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素. 例如,在数组{5, 8, 2, 6, 3, 4, 3 ...
- 程序员面试金典 - 面试题 10.03. 搜索旋转数组
题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...
- [Leetcode][程序员面试金典][面试题16.11][JAVA][跳水板][数学][动态规划]
[问题描述][简单] [解答思路] 边界问题 k=0 ,不能产生跳水板,返回空数组 shorter 等于longer,只有一种跳水板,返回longerk 思路 一般情况,k块木板,k种可能 跳水板的长 ...
- 程序员面试金典 - 面试题 10.03. 搜索旋转数组(二分查找)
1. 题目 搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详. 请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小 ...
- 程序员面试金典 - 面试题 08.11. 硬币(背包DP)
文章目录 1. 题目 2. 解题 1. 题目 硬币.给定数量不限的硬币,币值为25分.10分.5分和1分,编写代码计算 n 分有几种表示法.(结果可能会很大,你需要将结果模上1000000007) 示 ...
- 程序员面试金典 - 面试题 10.10. 数字流的秩(map/树状数组)
文章目录 1. 题目 2. 解题 2.1 map 2.2 树状数组 1. 题目 假设你正在读取一串整数.每隔一段时间,你希望能找出数字 x 的秩(小于或等于 x 的值的个数). 请实现数据结构和算法来 ...
- 程序员面试金典 - 面试题 10.02. 变位词组(哈希map)
1. 题目 编写一种方法,对字符串数组进行排序,将所有变位词组合在一起. 变位词是指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", ...
- 程序员面试金典 - 面试题 16.11. 跳水板(数学)
1. 题目 你正在使用一堆木板建造跳水板. 有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer. 你必须正好使用 k 块木板.编写一个方法,生成跳水板所有可能的 ...
- 程序员面试金典 - 面试题 10.05. 稀疏数组搜索(二分查找)
1. 题目 稀疏数组搜索.有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置. 示例1:输入: words = ["at", "" ...
最新文章
- @ResponseBody 和 @RequestBody 的作用
- php中设定一个全局异常处理。全局catch。默认catch。默认异常处理
- 【移动通信】移动通信基础
- 常使用的webserver地址
- 搞定系统设计 00:开篇
- 如何在命令中授权给MySQL_MySQL如何使用授权命令grant
- 怎么调节手机的刷新率_二分钟科普:手机上的“高刷新率”
- 【多题合集】【loliの模拟赛】排列组合大套餐
- matlab程序 surf算法,【求大神帮忙,surf算法源代码解析】
- matlab在电气信息类专业中的应用,MATLAB在电气信息类专业中的应用(高等学校应用型特色规划...
- C 和 CPP 混合代码cmath编译出错
- python网络爬虫系列教程——python网络数据爬虫误区,让你的爬虫更像人类
- linux 内核 内存管理 初始化 页表
- paip.python错误解决13
- 三菱GXWorks2 监视梯形图状态
- CentOS install btsync
- win10系统realtek高清晰音频管理器有什么用
- 常用的端口号(port number)
- [JPA错误]javax.persistence.EntityNotFoundException: Unable to find xxx
- 大前研一,柳井正《放胆去闯》读书笔记