严格说,前后都要算,
补个 ps- $A = 20, 14, 4, 5, 4, 8, 17, 14, 9, 17, 20, 8, 19, 17, 15, 13, 20, 16, 7, 2, 11, 14, 18, 11, 2, 15, 1, 5, 4, 5, 1, 6, 6, 9, 13, 18, 19, 9, 17, 12, 19, 17, 2, 13, 9, 19, 2, 11;
- Function Get-SpaceValue {
- param(
- [Parameter(Mandatory = $true)][double[]]$arr,
- [ValidateSet(0, -1)][sbyte]$y = -1 #[0]不计算两端 [-1]计算两端
- )
-
- $r = for ($i = $y; $i -lt $arr.Count - 2 - $y; $i++) {
- if ([Linq.Enumerable]::Max([double[]]$arr[$i..($i + 2)]) -eq $arr[$i + 1]) {
- @{p = $i + 1; v = $arr[$i + 1] }
- }
- }
- return ConvertTo-Json -Input @{位置 = $r.p; 峰值 = $r.v } -Comp
- }
- Get-SpaceValue -arr $A
复制代码 结果- {"峰值":[20,5,17,20,19,20,18,15,5,5,6,19,17,19,13,19,11],"位置":[0,3,6,10,12,16,22,25,27,29,31,36,38,40,43,45,47]}
复制代码
|