题解 | #扑克牌顺子#

扑克牌顺子

http://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4

O(n)解法

1、解题思路

首先扑克牌中肯定不能有重复的元素(可以有重复的0),需要建立一个标记数组vis。其次,求出最大值和最小值,如果最大值和最小值的区间小于等于4就可以组成顺子,在计算最小值的时候需要把0剔除。

2、代码
public class Solution {
    public boolean IsContinuous(int [] numbers) {
        int maxV = -1;
        int minV = 14;
        int[] vis = new int[14];
        for (int number : numbers) {
            if (vis[number] == 1 && number != 0) {
                return false;
            }
            vis[number] = 1;
            if (number > maxV) {
                maxV = number;
            }
            if (number < minV && number != 0) {
                minV = number;
            }
        }
        return maxV - minV <= 4;
    }
}
全部评论

相关推荐

SHC2:关键问题是你这三段实习是三个不同的岗位…你这样子秋招就是只有一段实习的本科生..
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务