当前位置:网站首页>每日一题:数组中数字出现的次数2
每日一题:数组中数字出现的次数2
2022-06-28 23:57:00 【利刃Cc】

链接: 数组中数字出现的次数2
这道题是前一次博客的另一个版本,想看上一个的链接在下面:
链接: 数组中数字出现的次数1
这道题与上道题不太一样的是这里出现的次数是3次还有1次的,所以异或的方法不太好整,我们可以另找方法。
我们想,既然这个数组里面只有一个数字是出现一次,其他是三次,那用一个数组把这些出现三次的数字,把他们每个二进制位统计并相加,会发现这个统计的数组中的每个位的数字都会是3的倍数,那如果又多了一个出现一次的数,那他某个二进制位上统计完加上去,会让这个数组里面某个位的数字变成模3余1,那么就可以找出这个数字为1的进制位,最后再用二进制的运算求出这个数字。总的来说:
统计出数组中的所有的数,从第1位到第32位进制位有多少个1,然后找到数组中模3余1的位数,就是这个出现一次的数字的二进制位为1的位数。
int singleNumber(int* nums, int numsSize){
//首先先统计,所以先开辟个数组
int arr[32] = {
0};
for(int i = 0; i < numsSize; i++)
{
for(int j = 0; j < 32; j++)
{
if(((nums[i]>>j) & 1) == 1)
{
arr[j] += 1;
}
}
}
//看看哪一位是出现一次的
int n = 0;
for(int i = 0; i < 32; i++)
{
if((arr[i] % 3) == 1)
{
//判断一下是不是第0位为1的情况
if(i == 0)
{
n += 1;
}
else
{
n += pow(2, i);
}
}
}
return n;
}

边栏推荐
- 三个pwn题
- Leetcode 178 Score ranking (June 27, 2022)
- Trois questions PWN
- TypeScript -- 第一节:基础类型
- Summary of software testing cognition
- stm32F407-------IO引脚复用映射
- Sword finger offer 12 Path in matrix
- WPF implementation calls local camera~
- TypeScript --第三节:接口
- [opencv] - linear filtering: box filtering, mean filtering, Gaussian filtering
猜你喜欢

Yyds dry goods inventory building knowledge map from scratch with neo4j (I)

Don't ask me how to do UI automation test again

剑指 Offer 12. 矩阵中的路径

Typescript -- Section 3: Interface

随笔记:模拟类数组(array-like)的方法
![[opencv] - linear filtering: box filtering, mean filtering, Gaussian filtering](/img/1d/3a46517cbfa90005a15d7858d81ca9.png)
[opencv] - linear filtering: box filtering, mean filtering, Gaussian filtering

ctfshow XSS

随笔记:插入排序 --from wcc

The second session of question swiping and clock out activity -- solving the switching problem with recursion as the background (2)

Stm32f407 ------ clock system (systeminit clock initialization, systick tick timer)
随机推荐
pymysql.Error 获取错误码与具体错误信息
6.28 学习内容
How to make two objects or arrays equal
Stm32f407 ------ clock system (systeminit clock initialization, systick tick timer)
stm32F407-------GPIO输入实验
Yyds dry goods inventory building knowledge map from scratch with neo4j (I)
websocket-js连接如何携带token验证
Mobile heterogeneous computing technology - GPU OpenCL programming (basic)
Basic operation of MySQL database: import hellodb SQL and query as required; Create account and authorize
力扣(LeetCode)178. 分数排名(2022.06.27)
随笔记:定义setter和getter的三种方式
Hesitating root sound
《英语语法新思维 基础版2》读书笔记(一)
Stm32f407----- register address name mapping analysis
剑指 Offer 12. 矩阵中的路径
Have you ever met a fake interview in a job interview? How to avoid?
Typescript-- section 4: Functions
fio的IO重放功能
Online yaml to JSON tool
TypeScript -- 第六节 泛型