数组清空练习和游戏练习
2017-03-05 19:53
155 查看
现在有一个整数数组,其元素值均为1-n范围内的某个整数,现在你和你的朋友在玩一个游戏,游戏的目的是把数组清空,你们轮流操作,你是先手,每次操作你可以删除数组中值为某个数的元素任意多个(当然数组中值为这个数的元素个数应大于等于你删除的个数,且你至少要删除一个数)。最先把数组清空的人获得胜利。假设你们都采取最优策略,请你计算你能否获得胜利。
给定一个整数数组A和元素个数n。请返回一个整数,1代表你能获胜,0代表你不能获胜。
测试样例:
[1,1,1]
返回:1
A与B做游戏。 在一个n*m的矩阵中的出发点是(1,m),终点是(n,1),规则是只能向左移动一格,向下一格或向左下移动一格,先走到终点的为winner。 A先走。
给定两个整数n和m,请返回最后的获胜者的名字(A或B)。
测试样例:
5 3
返回:B
给定一个整数数组A和元素个数n。请返回一个整数,1代表你能获胜,0代表你不能获胜。
测试样例:
[1,1,1]
返回:1
class Clear { public: int getWinner(vector<int> A, int n) { // write code here map<int,int> mp; //vector<int>B; for(int i=0;i<n;i++) mp[A[i]]++; int cnt=0; for(int i=0;i<n;i++){ cnt^=mp[A[i]]; mp[A[i]]--; } return cnt!=0; } };
A与B做游戏。 在一个n*m的矩阵中的出发点是(1,m),终点是(n,1),规则是只能向左移动一格,向下一格或向左下移动一格,先走到终点的为winner。 A先走。
给定两个整数n和m,请返回最后的获胜者的名字(A或B)。
测试样例:
5 3
返回:B
class Game { public: char getWinner(int n, int m) { // write code here if(n%2==1&&m%2==1){ return 'B'; }else{ return 'A'; } } };
相关文章推荐
- Jim's游戏外挂学习笔记4——查找怪数据数组的内存分布和地址
- J2ME游戏中读入文本并存储在String数组中
- 数组和集合对象(二) Hashtable练习
- java如何清空数组
- C语言数组练习2
- 算法练习——返回一个set数组
- C的试验田-指向数组的指针练习,并对数组内的字母大小转化
- 编程练习——求无序数组第k小的数
- Flex练习:写一个五子连珠游戏 Five And More
- J2ME游戏设计基础练习1_用图片数字代替文本数字绘制
- 关于游戏中数组的应用
- 数学练习二:互联网数字游戏
- 数学练习二:互联网数字游戏
- 数组和集合对象(三) ArrayList练习
- 数组练习
- 重做雷电kevin lynx版---真正为了游戏,而不是练习程序
- [C#]练习了下数组和类,C++ 基础还算可以,不是很吃力
- 数学练习二:互联网数字游戏
- 编程练习——可变长bit数组(bitArray)
- C语言数组练习1