Swift-数组中最长递增子序列

题目:一维数组(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>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目描述: 寻找一个数组的最长递增子序列的长度例如:arr=[2,1,6,4,5,2,7,4]那么:函数返回4,因...
    futurehau阅读 11,248评论 0 1
  • 问题定义: 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度...
    miltonsun阅读 4,778评论 0 1
  • 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不...
    曲终人散Li阅读 8,684评论 0 19
  • 无意间看到的一本电子书,一间自己的房间,文笔细腻,充满睿智,是伍尔夫的女性思想,对女性的思索,特别适合写作的人们阅...
    安安木棉阅读 1,540评论 0 0
  • 【佐→鼬】 -- 有時候我會想,如果你不是我哥哥該有多好我能夠像那些同性戀一樣,對你表白。可是如果我們不是兄弟,你...
    莫鴆阅读 2,507评论 2 2

友情链接更多精彩内容