首页 > 其他分享 >力扣 面试题 10.11. 峰与谷

力扣 面试题 10.11. 峰与谷

时间:2023-04-06 16:04:44浏览次数:51  
标签:面试题 nums 元素 力扣 -... 数组 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,3...,应该是峰,当前元素>=右边的元素,如果不满足,就交换当前元素和右边的元素。
  • 偶数:应该是谷,当前元素<=右边的元素,如果不满足,交换。
查看代码
 class Solution {
public:
    void wiggleSort(vector<int>& nums) {
        int len=nums.size()-1;
        //选取 谷-峰---顺序
        for(int i=0;i<len;++i){
            //奇数位:1,3...,应该是峰,当前元素>=右边的元素
            if(i%2){
                //不满足就交换
                if(nums[i]<nums[i+1])
                    swap(nums[i],nums[i+1]);
            }else{
            //偶数位,谷:<=
                if(nums[i]>nums[i+1]){
                    swap(nums[i],nums[i+1]);
                }
            }
        }
        
    }
};

标签:面试题,nums,元素,力扣,-...,数组,10.11
From: https://www.cnblogs.com/fudanxi/p/17293040.html

相关文章

  • 前端常见面试题笔记
    /***防抖*一段时间内触发重新计时*/functiondebounce(func,delay){lettimer=null;returnfunction(){if(timer)clearTimeout(timer)timer=setTimeout(()=>{//箭头函数直接继承父级作用域所以可...argumnets......
  • 力扣 376. 摆动序列
    376.摆动序列如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如, [1,7,4,9,2,5] 是一个 摆动序列 ,因为差值 (6,-3,5,-7,3) ......
  • java面试题学习记录2
    1.索引的分类 主键索引,联合索引,唯一索引,全文索引,普通索引2.锁的分类 行锁:操作数据库时,锁定整行数据 表锁:操作数据库时,锁定整表数据 乐观锁:多线程情况下,认为其他线程不会去修改的数据,所以不会上锁,但是会在跟新时,判断一下数据有没有被改变,可以用版本号机制 悲......
  • 数组面试题
    1.消失的数字题目链接题目描述 解题思路异或操作符支持乘法交换律---> 0^3^0^1^0^1^2^3--->0^0^0^1^1^3^3^2--->相同的值异或为0--->0^2--->2intmissingNumber(int*nums,intnumsSize){intval=0;inti=0;for(i=0;i<numsSize;i++......
  • 力扣626(MySQL)-换座位(中等)
    题目:表: Seat编写SQL查询来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。按 id 升序 返回结果表。查询结果格式如下所示。示例1: 解释:请注意,如果学生人数为奇数,则不需要更换最后一名学生的座位。解题思路:①交换座位号是交换相......
  • 力扣620(MySQL)-有趣的电影(简单)
    题目:某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个LED显示板做电影推荐,上面公布着影评和相关电影描述。作为该电影院的信息部主管,您需要编写一个SQL查询,找出所有影片描述为非 boring (不无聊) 的并且id为奇数 的影片,结果请按等级......
  • 力扣619(MySQL)-只出现一次的最大数字(简单)
    题目:MyNumbers 表:单一数字是在MyNumbers表中只出现一次的数字。请你编写一个SQL查询来报告最大的单一数字。如果不存在单一数字,查询需报告null。查询结果如下例所示。示例1: 示例2: 来源:力扣(LeetCode)链接:https://leetcode.cn/problems/biggest-single-num......
  • 力扣618(MySQL)-学生地理信息报告(困难)
    题目: 一所美国大学有来自亚洲、欧洲和美洲的学生,他们的地理信息存放在如下student表中该表没有主键。它可能包含重复的行。该表的每一行表示学生的名字和他们来自的大陆。一所学校有来自亚洲、欧洲和美洲的学生。示例:student: 写一个查询语句实现对大洲(continent)列的......
  • 面试题大集合
    目录第一章Python基础第二章函数第三章模块第四章面向对象第五章网络和并发编程第六章数据库和缓存第七章前端第八章django第九章Flask第十章tornado第十一章api第十二章git第十三章爬虫第十四章算法和数据结构第十五章Linux第十六章设计题第十七章客观题第十八......
  • 力扣题目整数除法
    在力扣上做题,这个题涉及到的整数溢出问题十分恼人,主要也是我不熟悉这些东西,做的很艰难,下面是题目:给定两个整数a和b,求它们的除法的商a/b,要求不得使用乘号'*'、除号'/'以及求余符号'%'。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345)=8以及......