funplus笔试
扑克牌为什么没过,有大佬邦看看吗
bool isStraight(vector<int>& nums) {
int n = nums.size();
int zero = 0;
int dis = 0;
sort(nums.begin(), nums.end());
int i;
for (i = 0; i < n; i++) {
if (nums[i] == 0)
zero++;
else break;
}
int not_zero_pos = i;
for (int j = not_zero_pos; j < n - 1; j++) {
if (nums[j + 1] == nums[j])//有相同的必然不行
return false;
}
for (int j = not_zero_pos; j < n - 1; j++) {
if (nums[j] == 1 &&
nums[j] >=
10)//特判:10~1这种情况,已升序,1之后最小要跟10,才能凑成
return true;
}
for (i=not_zero_pos+1; i < n; i++) {
dis = nums[i] - nums[i - 1] - 1;//差距
}
cout << dis;
if (dis > zero)
return false;
return true;
}
#秋招#
查看1道真题和解析