Swift.扑克牌的顺子

cubegao 2015-06-08 PM 505℃ 0条
题目描述:从扑克牌中随机抽5张牌,判断是不是一个顺子, 即这5张牌是不是连续的。2~10为数字本身, A为1。 J为11、Q为12、 为13。小王可以看成任意数字。
import Foundation

class For44Solution {
    func puke(_ nums: [Int]) -> Bool {
        
        var zero = 0
        var n = 0 //间隔
        
        var last = -1
        for i in nums.sorted() {
            if i == 0 {
                zero += 1
            }
            
            if last == i && last != 0 {
                return false
            }
            
            if last != -1 {
                n +=  i - last - 1
            }
            
            if i != 0 {
                last = i
            }
        }
        
        return zero >= n
    }
}

算法思想: 首先把数组排序,再统计数组中0 的个数,最后统计排序之后的数组中相邻数字之间的空缺总数。如果空缺的总数小于或者等于0 的个数,那么这个数组就是连续的:反之则不连续。

github地址:https://github.com/cubegao/LeetCode

标签: 算法

非特殊说明,本博所有文章均为博主原创。

评论啦~