内容简介:《剑指OFFER》刷题笔记 —— 扑克牌顺子LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“
《剑指OFFER》刷题笔记 —— 扑克牌顺子
LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So Lucky!”。LL决定去买体育彩票啦。 现在,要求你使用这幅牌模拟上面的过程,然后告诉我们LL的运气如何, 如果牌能组成顺子就输出true,否则就输出false。为了方便起见,你可以认为大小王是0。
ERROR: VS 的错误提示 —— int (Solution::*) (const void* a, const void* b) 类型的实参与 int (_cdecl::*) (const void* , const void* ) 类型的形参不兼容
class Solution {
public:
bool IsContinuous(vector<int> numbers) {
if (numbers.size() != 5)
return false;
//qsort(&numbers, numbers.size(), sizeof(int), compare);
qsort(&numbers[0], numbers.size(), sizeof(int), compare);
//sort(numbers.begin(), numbers.end());
int numZeros = 0;
int diff = 0;
for (int i = 0; i < numbers.size() - 1; ++i) {
if (numbers[i] == 0)
++ numZeros;
else {
if (numbers[i] == numbers[i + 1])
return false;
diff += numbers[i + 1] - numbers[i] - 1;
}
}
return (numZeros < diff) ? false : true;
}
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
};
CORRECT:
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
class Solution {
public:
bool IsContinuous(vector<int> numbers) {
if (numbers.size() != 5)
return false;
//qsort(&numbers, numbers.size(), sizeof(int), compare);
qsort(&numbers[0], numbers.size(), sizeof(int), compare);
//sort(numbers.begin(), numbers.end());
int numZeros = 0;
int diff = 0;
for (int i = 0; i < numbers.size() - 1; ++i) {
if (numbers[i] == 0)
++ numZeros;
else {
if (numbers[i] == numbers[i + 1])
return false;
diff += numbers[i + 1] - numbers[i] - 1;
}
}
return (numZeros < diff) ? false : true;
}
};
注意:
C++ 排序请使用 sort(),不要使用 C 语言中的 qsort();
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-04/158370.htm
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Python 函数调用&定义函数&函数参数
- Linux内核如何替换内核函数并调用原始函数
- gdb 如何调用函数?
- 汇编层面分析函数调用
- 理解 Golang 的函数调用
- Wasm 介绍(六):间接函数调用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Hit Refresh
Satya Nadella、Greg Shaw / HarperBusiness / 2017-9-26 / USD 20.37
Hit Refresh is about individual change, about the transformation happening inside of Microsoft and the technology that will soon impact all of our lives—the arrival of the most exciting and disruptive......一起来看看 《Hit Refresh》 这本书的介绍吧!