剑指offer-扑克牌顺子
2017-07-24 20:22
495 查看
问题
题目:[剑指offer-扑克牌顺子]思路
参考了[《剑指offer》-扑克牌顺子]主要思路就是求出0的个数,再求出所有数字之间两两的gap = arr[cur] - arr[pre] - 1. 如果0的个数小于gap的个数是不行的。
还有,如果除了0之外任意两个数字相等,肯定无法形成顺子。
代码
class Solution { public: bool IsContinuous( vector<int> numbers ) { int sz = numbers.size(); if( sz < 5 ) return false; vector<int>& arr = numbers; sort( arr.begin(), arr.end() ); int zeros = 0; int idx; for( idx = 0; idx < sz; ++idx ){ if( !arr[idx] ) ++zeros; else break; } if( idx == sz ) idx = 0; // 不存在0,重置下标 int diff = 0; for(int pre = idx, cur = pre+1; cur < sz; ++pre, ++cur){ if( arr[pre] == arr[cur] ) return false; else diff += arr[cur] - arr[pre] - 1; } return diff <= zeros; } };
相关文章推荐
- 剑指offer-面试题44-扑克牌的顺子
- 剑指offer 扑克牌顺子
- 剑指offer之面试题44扑克牌的顺子
- 剑指offer--扑克牌顺子
- 剑指offer44-扑克牌顺子判断
- 剑指offer—扑克牌顺子
- 剑指offer 面试题44 扑克牌顺子
- 剑指offer:扑克牌顺子
- 剑指offer:扑克牌顺子
- [剑指offer]扑克牌顺子
- 剑指offer 面试题44 扑克牌的顺子
- 【剑指offer】扑克牌的顺子
- 【剑指Offer学习】【面试题44:扑克牌的顺子】
- 剑指offer:扑克牌顺子
- 剑指Offer(61)扑克牌中的顺子
- 【剑指offer】扑克牌的顺子
- 剑指offer--扑克牌顺子
- [剑指offer] 扑克牌的顺子
- 【剑指offer】6.4抽象建模能力——面试题44:扑克牌的顺子
- 剑指 offer set 24 扑克牌的顺子