在Swift中找到数组中的多个峰和谷元素可以通过以下步骤实现:
以下是一个示例代码:
func findPeaksAndValleys(in array: [Int]) -> (peaks: [Int], valleys: [Int]) {
var peaks = [Int]()
var valleys = [Int]()
for i in 1..<array.count-1 {
if array[i] > array[i-1] && array[i] > array[i+1] {
peaks.append(array[i])
} else if array[i] < array[i-1] && array[i] < array[i+1] {
valleys.append(array[i])
}
}
return (peaks, valleys)
}
// 示例用法
let array = [1, 3, 2, 4, 5, 1, 6, 2]
let result = findPeaksAndValleys(in: array)
print("峰元素:\(result.peaks)")
print("谷元素:\(result.valleys)")
这段代码会输出以下结果:
峰元素:[3, 5, 6]
谷元素:[2, 1]
这个算法的时间复杂度是O(n),其中n是数组的长度。它可以用于查找数组中的多个峰和谷元素,并将它们分别存储在两个数组中。
领取专属 10元无门槛券
手把手带您无忧上云