原文地址:https://www.cnblogs.com/strengthen/p/10294636.html

A subarray A[i], A[i+1], ..., A[j] of A is said to be turbulent if and only if:

  • For i <= k < jA[k] > A[k+1] when k is odd, and A[k] < A[k+1] when k is even;
  • OR, for i <= k < jA[k] > A[k+1] when k is even, and A[k] < A[k+1] when k is odd.

That is, the subarray is turbulent if the comparison sign flips between each adjacent pair of elements in the subarray.

Return the length of a maximum size turbulent subarray of A.

Example 1:

Input: [9,4,2,10,7,8,8,1,9]
Output: 5
Explanation: (A[1] > A[2] < A[3] > A[4] < A[5])

Example 2:

Input: [4,8,12,16]
Output: 2

Example 3:

Input: [100]
Output: 1 

Note:

  1. 1 <= A.length <= 40000
  2. 0 <= A[i] <= 10^9

当 A 的子数组 A[i], A[i+1], ..., A[j] 满足下列条件时,我们称其为湍流子数组

  • 若 i <= k < j,当 k 为奇数时, A[k] > A[k+1],且当 k 为偶数时,A[k] < A[k+1]
  • 或 若 i <= k < j,当 k 为偶数时,A[k] > A[k+1] ,且当 k 为奇数时, A[k] < A[k+1]

也就是说,如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是湍流子数组。

返回 A 的最大湍流子数组的长度。

示例 1:

输入:[9,4,2,10,7,8,8,1,9]
输出:5
解释:(A[1] > A[2] < A[3] > A[4] < A[5])

示例 2:

输入:[4,8,12,16]
输出:2

示例 3:

输入:[100]
输出:1 

提示:

  1. 1 <= A.length <= 40000
  2. 0 <= A[i] <= 10^9

676ms

 1 class Solution {
 2     func maxTurbulenceSize(_ A: [Int]) -> Int {
 3         var n:Int = A.count
 4         var dp:Int = 0
 5         var ret:Int = 1
 6         for i in 0..<(n - 1)
 7         {
 8             if A[i] < A[i+1]
 9             {
10                 if i > 0 && A[i-1] > A[i]
11                 {
12                     dp += 1
13                 }
14                 else
15                 {
16                     dp = 2
17                 }
18             }
19             else if A[i] > A[i+1]
20             {
21                 if i > 0 && A[i-1] < A[i]
22                 {
23                     dp += 1
24                 }
25                 else
26                 {
27                     dp = 2
28                 }
29             }
30             else
31             {
32                 dp = 1
33             }
34             ret = max(ret, dp)
35         }
36         return ret
37     }
38 }

转载于:https://www.cnblogs.com/strengthen/p/10294636.html

[Swift]LeetCode978. 最长湍流子数组 | Longest Turbulent Subarray相关推荐

  1. LeetCode——978. 最长湍流子数组(Longest Turbulent Subarray)——分析及代码(Java)

    LeetCode--978. 最长湍流子数组[Longest Turbulent Subarray]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划(一维数组) (1)思路 (2) ...

  2. leetcode 978. 最长湍流子数组(动态规划)

    978. 最长湍流子数组 当 A 的子数组 A[i], A[i+1], -, A[j] 满足下列条件时,我们称其为湍流子数组: 若 i <= k < j,当 k 为奇数时, A[k] &g ...

  3. 【线性 dp】B003_LC_最长湍流子数组(读题 dp / 双指针)

    一.Problem 当 A 的子数组 A[i], A[i+1], -, A[j] 满足下列条件时,我们称其为湍流子数组: 若 i <= k < j,当 k 为奇数时, A[k] > ...

  4. leetcode 978. 最长湍流子数组(滑动窗口)

    当 A 的子数组 A[i], A[i+1], -, A[j] 满足下列条件时,我们称其为湍流子数组: 若 i <= k < j,当 k 为奇数时, A[k] > A[k+1],且当 ...

  5. 力扣978最长湍流子数组——Python解答

    我们采用DP解法 up = [1] * len(arr)down = [1] * len(arr)ans = 1for i in range(1, len(arr)):if arr[i] > a ...

  6. LeetCode:978. Longest Turbulent Subarray - Python

    978. 最长湍流子数组 问题描述: 当 A的子数组A[i], A[i+1], ..., A[j]满足下列条件时,我们称其为湍流子数组: 若i <= k < j,当 k为奇数时, A[k] ...

  7. leetcode 1438. 绝对差不超过限制的最长连续子数组(滑动窗口+treemap)

    给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件的子数组,则返回 ...

  8. 1438 绝对差不超过限制的最长连续子数组(暴力破解)

    1. 问题描述: 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件 ...

  9. 力扣1438——绝对差不超过限制的最长连续子数组(滑动窗口+单调队列)

    题目描述(中等) 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件 ...

最新文章

  1. ElasticSearch 2 (7) - 基本概念
  2. web开发入门_Web开发人员和设计师的自由职业入门
  3. 【转】React Vue MVC MVVM MVP
  4. 卡巴斯基:风险无国界 网络安全从业者要与小网民保持一致
  5. 灰色预测法 —— matlab
  6. python的cmd下小白开发应用教程
  7. python 函数参数多个逗号不报错_python笔记7-多线程threading之函数式
  8. java编程如何 实现8开立方等于2_Java之Math类使用小结
  9. Unity3d之求物体体积
  10. C# 调用Dll中非托管C++代码时,函数参数的类型对照
  11. armboot和内核文件系统烧写总结
  12. Learning ROS: Using Sensors and Actuators with ROS -在ROS中使用传感器和执行器
  13. 如何清理浏览器缓存快捷键
  14. erp实施 数据库面试题_erp实施顾问笔试题有什么_erp实施顾问笔试题
  15. [Qualcomm][Audio] 高通Audio Bringup Guide
  16. true launch bar 和 editplus
  17. Laravel 使用 seeder 使用要点
  18. 中小尺寸常见显示屏分辨率列表
  19. 【天池、京东算法大赛、Kaggle等机器学习打比赛模板】
  20. 【编解码:WebP协议】

热门文章

  1. 快手诉“短视频人气助手”软件不正当竞争:索赔100万元
  2. python字典value排序_python字典按照value排序方法
  3. 普罗米修斯 软件_监控神器-普罗米修斯Prometheus的安装
  4. ffmpeg 硬解码
  5. asio 组播包ssdp
  6. 如何做一个国产数据库(二)
  7. mysql intt默认值_MySQL如何处理隐式默认值
  8. wampserver橙色如何变成绿色_PLC视频教程:手机如何控制西门子变频器V20
  9. 本文为 2021 年 5 月知识总结
  10. 我的k8s随笔:Kubernetes部署的一些输出信息