剑指OFFER 扑克牌顺子

剑指OFFER 扑克牌顺子

分析

把数与数之间的缝隙用0去填,如果0够用那么就是顺子;如果0用完了仍然填不完缝隙,那么就组不成顺子

代码

class Solution {
public:
    bool IsContinuous( vector<int> nums ) {
        int size = nums.size();
        if(size == 0)return false;
        sort(nums.begin(),nums.end());
        
        int zero_count = 0;
        while(nums[zero_count]==0)
        {
            zero_count++;
        }
        
        for(int i=zero_count;i<size-1;i++)
        {
            if(nums[i]+1!=nums[i+1])
            {
                while(zero_count>0 && nums[i]+1!=nums[i+1])
                {
                    zero_count--;
                    nums[i]++;
                }
                if(zero_count==0 && nums[i]+1!=nums[i+1])return false;
            }
        }
        return true;
    }
};
posted @ 2020-02-06 13:53  virgil_devil  阅读(91)  评论(0编辑  收藏  举报