【每日编程-446期】Leetcode.1025.除数博弈
样例一:
输入:2
输出:true
解释:爱丽丝选择 1,鲍勃无法进行操作。
样例二:
输入:3
输出:false
解释:爱丽丝选择 1,鲍勃也选择 1,然后爱丽丝无法进行操作。
提示:
1 <= N <= 1000
解决方法:
(1)算法的基本思想:
3.因为爱丽丝先手,N初始若为偶数,爱丽丝则只需一直选1,使鲍勃一直面临N为奇数的情况,这样爱丽丝稳赢;
链接:https://leetcode-cn.com/problems/two-sum/solution/qi-shi-shi-yi-dao-shu-xue-ti-by-coder233/
来源:力扣(LeetCode)
(2)代码实现:
class Solution {
public:
bool divisorGame(int N) {
return N % 2 == 0;
}
};class Solution {
public:
bool divisorGame(int N) {
int h = 0;
for (int i = 1; i < N; i++) {
if (N % i == 0) {
N = N - i;
i = 0;
h++;
}
}
return h % 2 == 0 ? 0 : 1;
}
};
在大小为 2N
的数组 A
中有 N+1
个不同的元素,其中有一个元素重复了 N
次。
返回重复了 N
次的那个元素。
示例 1:
输入:[1,2,3,3]
输出:3
示例 2:
输入:[2,1,2,5,3,2]
输出:2
示例 3:
输入:[5,1,5,2,5,3,5,4]
输出:5
提示:
4 <= A.length <= 10000
0 <= A[i] < 10000
A.length
为偶数
class Solution {
public:
int repeatedNTimes(vector<int>& A) {
}
};