对数组元素的查重
传入一个数组指针 +数组元素的个数
假如数组arr[5] = {1,3,3,4,5}
int checkRank(int * player, int n)
{
int i, res = 0;
for (i = 0; i < n; i++)
{
res |= 1 << player[i];
}
return res == 0x3e;
}
- 这里的移位操作,可能会出现不太清楚的地方
- A>>B
这个>> 的A是被移位的数,而后面的B是要移动的位数 - E<<D
这个<<是同理,D才是要移动的位数
res |= 1 << player[i];
所以说
这里的player[i]的不同就意味着要移动1的位数不同,那么与上一个数 ‘或’ 一下,就会有 i 个1在里面,如果数组中存的数字是连续不同数字那么,res |= 1 << player[i];的连续结果就会有
这么多个1,可以算预期大小,这样进行逻辑运算,就会返回有无重复值.