给一副扑克牌,求最长的顺子
来源:互联网 发布:ios 元数据丢失 编辑:程序博客网 时间:2024/04/30 03:12
#include<iostream>#include<vector>#include <set>#include <algorithm>using namespace std;using std::random_shuffle;struct Recv{ int difference; set<int>::iterator first; set<int>::iterator last;};void Sort(int *arr, int len){ set<int> myset(arr, arr + len); Recv recv = { 0,myset.begin(),myset.begin() }; set<int>::iterator lt = myset.begin(); set<int>::iterator st = myset.begin(); if (st != myset.end() && (++st != myset.end())) { ; } int i = 1; for (; st != myset.end(); ) { if ((*st - i) == *lt) { st++; i++; } else if (recv.difference < i) { recv.first = lt; recv.last = st; recv.difference = i; i = 1; lt = st; st++; } else { i = 1; lt = st; st++; } } for (set<int>::iterator mt = recv.first; mt != recv.last; ++mt) { cout << *mt << " "; } cout << "size=" << recv.difference << endl; cout << endl;}template<class T>//强大的仿函数class display{public: void operator()(const T& x) { cout << x << ' '; }};void C(){ vector<int> ve; for (int i = 0; i < 20; ++i) { ve.push_back(i); } for_each(ve.begin(),ve.end(),display<int>()); cout << endl; random_shuffle(ve.begin(),ve.end()); for_each(ve.begin(), ve.end(), display<int>());}void main(){ //C();//忽略,只是为了练习一下random_shuffle函数 int arr[] = { 9,3,2,1,8,2,2,4,1,5,6,11}; int len = sizeof(arr) / sizeof(arr[0]); Sort(arr, len);}
阅读全文
0 0
- 给一副扑克牌,求最长的顺子
- 求一副扑克牌的顺子,大小王记为0,可以充当任意数字
- 求抽取扑克牌顺子的概率
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的“顺子”
- 判断扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- 扑克牌的顺子
- SD卡与fatfs文件系统(3)
- Linux C 字符串输入函数 gets()、fgets()、scanf() 详解
- 关于缓存的那些传说
- c++STL vector扩容过程
- JavaScript原型
- 给一副扑克牌,求最长的顺子
- HDU-3397:Sequence operation(区间更新之合集?)
- Spring 动态代理(一)
- oracle递归树形结构sql
- SD卡与fatfs文件系统(4)
- Ubuntu16.04安装mediawiki
- poj 3398 Perfect Service
- Passward
- java:封装的概念和代码