[Swift]LeetCode978. 最长湍流子数组 | Longest Turbulent Subarray
原文地址: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 < j
,A[k] > A[k+1]
whenk
is odd, andA[k] < A[k+1]
whenk
is even; - OR, for
i <= k < j
,A[k] > A[k+1]
whenk
is even, andA[k] < A[k+1]
whenk
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 <= A.length <= 40000
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 <= A.length <= 40000
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相关推荐
- LeetCode——978. 最长湍流子数组(Longest Turbulent Subarray)——分析及代码(Java)
LeetCode--978. 最长湍流子数组[Longest Turbulent Subarray]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划(一维数组) (1)思路 (2) ...
- leetcode 978. 最长湍流子数组(动态规划)
978. 最长湍流子数组 当 A 的子数组 A[i], A[i+1], -, A[j] 满足下列条件时,我们称其为湍流子数组: 若 i <= k < j,当 k 为奇数时, A[k] &g ...
- 【线性 dp】B003_LC_最长湍流子数组(读题 dp / 双指针)
一.Problem 当 A 的子数组 A[i], A[i+1], -, A[j] 满足下列条件时,我们称其为湍流子数组: 若 i <= k < j,当 k 为奇数时, A[k] > ...
- leetcode 978. 最长湍流子数组(滑动窗口)
当 A 的子数组 A[i], A[i+1], -, A[j] 满足下列条件时,我们称其为湍流子数组: 若 i <= k < j,当 k 为奇数时, A[k] > A[k+1],且当 ...
- 力扣978最长湍流子数组——Python解答
我们采用DP解法 up = [1] * len(arr)down = [1] * len(arr)ans = 1for i in range(1, len(arr)):if arr[i] > a ...
- LeetCode:978. Longest Turbulent Subarray - Python
978. 最长湍流子数组 问题描述: 当 A的子数组A[i], A[i+1], ..., A[j]满足下列条件时,我们称其为湍流子数组: 若i <= k < j,当 k为奇数时, A[k] ...
- leetcode 1438. 绝对差不超过限制的最长连续子数组(滑动窗口+treemap)
给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件的子数组,则返回 ...
- 1438 绝对差不超过限制的最长连续子数组(暴力破解)
1. 问题描述: 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件 ...
- 力扣1438——绝对差不超过限制的最长连续子数组(滑动窗口+单调队列)
题目描述(中等) 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件 ...
最新文章
- ElasticSearch 2 (7) - 基本概念
- web开发入门_Web开发人员和设计师的自由职业入门
- 【转】React Vue MVC MVVM MVP
- 卡巴斯基:风险无国界 网络安全从业者要与小网民保持一致
- 灰色预测法 —— matlab
- python的cmd下小白开发应用教程
- python 函数参数多个逗号不报错_python笔记7-多线程threading之函数式
- java编程如何 实现8开立方等于2_Java之Math类使用小结
- Unity3d之求物体体积
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- armboot和内核文件系统烧写总结
- Learning ROS: Using Sensors and Actuators with ROS -在ROS中使用传感器和执行器
- 如何清理浏览器缓存快捷键
- erp实施 数据库面试题_erp实施顾问笔试题有什么_erp实施顾问笔试题
- [Qualcomm][Audio] 高通Audio Bringup Guide
- true launch bar 和 editplus
- Laravel 使用 seeder 使用要点
- 中小尺寸常见显示屏分辨率列表
- 【天池、京东算法大赛、Kaggle等机器学习打比赛模板】
- 【编解码:WebP协议】
热门文章
- 快手诉“短视频人气助手”软件不正当竞争:索赔100万元
- python字典value排序_python字典按照value排序方法
- 普罗米修斯 软件_监控神器-普罗米修斯Prometheus的安装
- ffmpeg 硬解码
- asio 组播包ssdp
- 如何做一个国产数据库(二)
- mysql intt默认值_MySQL如何处理隐式默认值
- wampserver橙色如何变成绿色_PLC视频教程:手机如何控制西门子变频器V20
- 本文为 2021 年 5 月知识总结
- 我的k8s随笔:Kubernetes部署的一些输出信息