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; }#秋招#