题目:一维数组(N个元素)中最长递增子序列的长度.
核心代码:
<pre><code>` func maxSubsequence(arr:[Int])->Int {
var list:[Int] = [Int].init(repeating: 0, count: arr.count)
for i in 0..<arr.count {
list[i] = 1
for j in 0..<i { // 与当前的数字对比,更新每个位置最大的长度
if arr[i] > arr[j] && list[j] + 1 > list[i] {
list[i] = list[j] + 1
}
}
}
return maxArray(arr: list)
}
func maxArray(arr:[Int]) -> Int {
var max:Int = arr[0]
for i in 0..<arr.count {
if arr[i] > max {
max = arr[i]
}
}
return max
}`</code></pre>
测试代码:
<pre><code>var subData:[Int] = [1,-1,2,-3,4,-5,6,-7] var sublen:Int = calculator.maxSubsequence(arr: subData) print("FlyElephant-\(subData)最长递增子序列长度:\(sublen)")</code></pre>