文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个下标从 0 开始的整数数组 nums 。如果两侧距 i 最近的不相等邻居的值均小于 nums[i] ,则下标 i 是 nums 中,某个峰的一部分。
类似地,如果两侧距 i 最近的不相等邻居的值均大于 nums[i] ,则下标 i 是 nums 中某个谷的一部分。
对于相邻下标 i 和 j ,如果 nums[i] == nums[j] , 则认为这两下标属于 同一个 峰或谷。

注意,要使某个下标所做峰或谷的一部分,那么它左右两侧必须 存在不相等邻居。

返回 nums 中峰和谷的数量。

示例 1:
输入:nums = [2,4,1,1,6,5]
输出:3
解释:
在下标 0 :由于 2 的左侧不存在不相等邻居,所以下标 0 既不是峰也不是谷。
在下标 1 :4 的最近不相等邻居是 2 和 1 。由于 4 > 2 且 4 > 1 ,下标 1 是一个峰。
在下标 2 :1 的最近不相等邻居是 4 和 6 。由于 1 < 4 且 1 < 6 ,下标 2 是一个谷。
在下标 3 :1 的最近不相等邻居是 4 和 6 。由于 1 < 4 且 1 < 6 ,下标 3 符合谷的定义,但需要注意它和下标 2 是同一个谷的一部分。
在下标 4 :6 的最近不相等邻居是 1 和 5 。由于 6 > 1 且 6 > 5 ,下标 4 是一个峰。
在下标 5 :由于 5 的右侧不存在不相等邻居,所以下标 5 既不是峰也不是谷。
共有 3 个峰和谷,所以返回 3 。示例 2:
输入:nums = [6,6,5,5,4,1]
输出:0
解释:
在下标 0 :由于 6 的左侧不存在不相等邻居,所以下标 0 既不是峰也不是谷。
在下标 1 :由于 6 的左侧不存在不相等邻居,所以下标 1 既不是峰也不是谷。
在下标 2 :5 的最近不相等邻居是 6 和 4 。由于 5 < 6 且 5 > 4 ,下标 2 既不是峰也不是谷。
在下标 3 :5 的最近不相等邻居是 6 和 4 。由于 5 < 6 且 5 > 4 ,下标 3 既不是峰也不是谷。
在下标 4 :4 的最近不相等邻居是 5 和 1 。由于 4 < 5 且 4 > 1 ,下标 4 既不是峰也不是谷。
在下标 5 :由于 1 的右侧不存在不相等邻居,所以下标 5 既不是峰也不是谷。
共有 0 个峰和谷,所以返回 0 。提示:
3 <= nums.length <= 100
1 <= nums[i] <= 100

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

2. 解题

  • 记录数字上升 1下降 -1的状态 state(初始为0),如果遇到状态反转就是遇到一个峰或者谷
class Solution {public:int countHillValley(vector<int>& nums) {int n = nums.size(), ans = 0, state = 0;for(int i = 1; i < n; ++i){if(nums[i] > nums[i-1]) // 上升{if(state == -1) // 之前是下降ans++;state = 1;}else if(nums[i] < nums[i-1]) // 下降{if(state == 1) // 之前是上升ans++;state = -1;}}return ans;}
};

0 ms 8.6 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2210. 统计数组中峰和谷的数量相关推荐

  1. LeetCode简单题之统计数组中峰和谷的数量

    题目 给你一个下标从 0 开始的整数数组 nums .如果两侧距 i 最近的不相等邻居的值均小于 nums[i] ,则下标 i 是 nums 中,某个峰的一部分.类似地,如果两侧距 i 最近的不相等邻 ...

  2. 6027. 统计数组中峰和谷的数量

    给你一个下标从 0 开始的整数数组 nums .如果两侧距 i 最近的不相等邻居的值均小于 nums[i] ,则下标 i 是 nums 中,某个峰的一部分.类似地,如果两侧距 i 最近的不相等邻居的值 ...

  3. LeetCode 2176. 统计数组中相等且可以被整除的数对

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 k ,请你返回满足 0 <= i < j < n ,nums[i] ...

  4. LeetCode 525. 连续数组(前缀和+哈希)

    1. 题目 给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度). 示例 1: 输入: [0,1] 输出: 2 说明: [0, 1] 是具有相同数量0和1的最长连续子数组. ...

  5. LeetCode 2135. 统计追加字母可以获得的单词数

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给你两个下标从 0 开 ...

  6. 力扣leetcode之10.11峰与谷

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

  7. 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

    目录 一.今日心得感悟 1.数组从小到大排序 ①冒泡法--时间复杂度:O(nlogn) ②使用排序函数qsort--时间复杂度:O(nlogn) ③两端->中间(双指针法) --时间复杂度:O( ...

  8. LeetCode——1803. 统计异或值在范围内的数对有多少(Count Pairs With XOR in a Range)[困难]——分析及代码(Java)

    LeetCode--1803. 统计异或值在范围内的数对有多少[Count Pairs With XOR in a Range][困难]--分析及代码[Java] 一.题目 二.分析及代码 1. 暴力 ...

  9. php 统计数组个数,php统计数组元素的个数和唯一性

    大家好,今天给大家分享的是php统计数组元素的个数和唯一性,希望大家喜欢. 我们在学习php数组的时候,如何来统计数组元素的个数和唯一性呢? 那么下面我们来说下 1,函数count() 统计数组元素个 ...

最新文章

  1. 散列表(也叫哈希表),
  2. boost::mp11::mp_valid相关用法的测试程序
  3. 讲讲python使用xpath中遇到[Element a at 0x39a9a80到底是什么
  4. 只不过是R.java文件的特性-----出错信息:R.java was modified manually! Reverting to generated version!...
  5. 数据库安全之数据掩码:SQL新功能之动态数据掩码(SQL2016AZURE SQL)
  6. 【细节实现题】LeetCode 57. Insert Interval
  7. License for package Android SDK Build-Tools 28.0.3 not accepted.
  8. 富士通Fujitsu DPK2180T 打印机驱动
  9. matlab插值与拟合例题_[转载]MATLAB插值与拟合(1)
  10. java打印5排星号_Java-用星号打印菱形
  11. background-color:transparent
  12. 懒人神器:svg-sprite-loader实现自己的Icon组件
  13. nginx 会话保持
  14. Jenkins从下载到部署项目的流程
  15. java使用poi在word中生成柱状图、折线图、饼图、柱状图+折线图组合图、动态表格、文本替换、图片替换 springboot项目
  16. 将知网caj格式转换成pdf格式
  17. 我们为什么这么拼?(转载自微信)
  18. 推荐一个Intellij IDEA插件--Key Promoter X
  19. 如何入门学习cg原画
  20. Matlab 矩阵运算(1)

热门文章

  1. mfc程序转化为qt_10年程序员:我都学过这些语言,2019年开始我再也不是程序员......
  2. Java笔记05-Collection、泛型、迭代器
  3. flask中数据库的基本操作-增删改查【备忘】
  4. iOS 加载本地html文件详细操作
  5. eclipse的java帮助文档_java在Eclipse中文apidoc帮助文档导入.doc
  6. 软切换、硬切换,垂直切换、水平切换
  7. kernel移植——从三星官方内核开始移植
  8. html嵌套html解决办法(object/object)
  9. CodeForces 903D Almost Difference
  10. Spring总结四:IOC和DI 注解方式