博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Swift]LeetCode646. 最长数对链 | Maximum Length of Pair Chain
阅读量:5338 次
发布时间:2019-06-15

本文共 3412 字,大约阅读时间需要 11 分钟。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝()
➤GitHub地址:
➤原文地址: 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

You are given n pairs of numbers. In every pair, the first number is always smaller than the second number.

Now, we define a pair (c, d) can follow another pair (a, b) if and only if b < c. Chain of pairs can be formed in this fashion.

Given a set of pairs, find the length longest chain which can be formed. You needn't use up all the given pairs. You can select pairs in any order.

Example 1:

Input: [[1,2], [2,3], [3,4]]Output: 2Explanation: The longest chain is [1,2] -> [3,4] 

Note:

  1. The number of given pairs will be in the range [1, 1000].

给出 n 个数对。 在每一个数对中,第一个数字总是比第二个数字小。

现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面。我们用这种形式来构造一个数对链。

给定一个对数集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你可以以任何顺序选择其中的一些数对来构造。

示例 :

输入: [[1,2], [2,3], [3,4]]输出: 2解释: 最长的数对链是 [1,2] -> [3,4]

注意:

  1. 给出数对的个数在 [1, 1000] 范围内。

Runtime: 236 ms
Memory Usage: 19.1 MB
1 class Solution { 2     func findLongestChain(_ pairs: [[Int]]) -> Int { 3         var pairs = pairs 4         var res:Int = 0 5         var end:Int = Int.min 6         pairs.sort(by:{(a:[Int],b:[Int]) -> Bool in  7                        return a[1] < b[1]                       8                       }) 9         for pair in pairs10         {11             if pair[0] > end12             {13                 res += 114                 end = pair[1]15             }16         }17         return res18     }19 }

284ms

1 class Solution { 2     func findLongestChain(_ pairs: [[Int]]) -> Int { 3         let sortPairs = pairs.sorted { $0[1] < $1[1] } 4         var ans = 0, curEnd = Int.min 5         for pair in sortPairs { 6             if pair[0] > curEnd { 7                 ans += 1 8                 curEnd = pair[1] 9             }10         }11         return ans12     }13 }

296ms

1 class Solution {    2     func findLongestChain(_ pairs: [[Int]]) -> Int { 3     guard pairs.count > 1 else{ 4         return pairs.count 5     } 6     let sorted = pairs.sorted(by: {$0[1] < $1[1]}) 7     var count : Int = 1 8     var currentPair = sorted[0] 9     for pair in sorted{10         if pair.first! > currentPair.last!{11             count += 112             currentPair = pair13         }14     }    15     return count    16     }17 }

1260ms

1 sample 1260 ms submission 2 class Solution { 3     func findLongestChain(_ pairs: [[Int]]) -> Int { 4         let n = pairs.count 5         if n <= 1{ return n } 6          7         let sorted = pairs.sorted { $0[0] < $1[0] } 8         var f = [Int](repeating: 1, count: n) 9         var result = 110         11         for i in 1..

1272ms

1 class Solution { 2     func findLongestChain(_ pairs: [[Int]]) -> Int { 3         guard pairs.count > 1 else { return 1 } 4         let pairs = pairs.sorted(by: { 5             return $0[0] < $1[0] 6         }) 7          8         let n = pairs.count 9         var dp: [Int] = Array(repeating: 0, count: n)10         dp[0] = 111         12         for i in  1 ..< n {13             for j in 0 ..< i {14                 if pairs[i][0] > pairs[j][1] {15                     dp[i] = max(dp[i], dp[j])16                 }17             }18             dp[i] += 119         }20         21         return dp[n - 1]22     }23 }

 

转载于:https://www.cnblogs.com/strengthen/p/10482458.html

你可能感兴趣的文章
把word文档中的所有图片导出
查看>>
ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
查看>>
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>
YTU 2625: B 构造函数和析构函数
查看>>
加固linux
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
关于 linux 的 limit 的设置
查看>>
MTK笔记
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
struts1和struts2的区别
查看>>
Redis常用命令
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>