Leetcode-每日一题【剑指 Offer 56 - II. 数组中数字出现的次数 II】

news/2024/11/30 0:32:40/

题目

在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。

示例 1:

输入:nums = [3,4,3,3]
输出:4


示例 2:

输入:nums = [9,1,7,9,7,9,7]
输出:1

限制:

  • 1 <= nums.length <= 10000
  • 1 <= nums[i] < 2^31

解题思路

1.对于这道题我们考虑数字的二进制形式,对于出现三次的数字,各 二进制位 出现的次数都是3 的倍数。因此,统计所有数字的各二进制位中 1 的出现次数,并对 3 求余,结果则为只出现一次的数字。

举个栗子:

2.因此我们需要设置一个数组 arr[ ] 来记录我们数组中的所有数字各个二进制位上 1 出现的次数, 变量 m 用来寻找二进制位为 1 的位数,变量 sum 用来保存最终的结果,我们用两个 for 循环去遍历数组 nums ,第一次循环先去判断数组中所有数字的二进制位的最低位,只有最低位为 1 时与m = 1进行与运算后结果才不为0,我们将所有最低位为 1 的数的个数统计到arr[i]中。

3.然后用arr[i] 对 3 取余,并将结果乘以 m后存放在sum中,然后再将m向左移一位变为m = 10,去统计二进制的第二位为 1 的数字的个数,以此类推,直到所有位数统计完成,返回sum即可。

 

代码实现

class Solution {public int singleNumber(int[] nums) {int[] arr = new int[32];int m = 1;int sum = 0;for(int i = 0; i < 32; i++){for(int j = 0; j < nums.length; j++){if((nums[j] & m) != 0  ){arr[i]++;}}arr[i] = arr[i] % 3;sum = sum + arr[i] * m;m = m << 1;}return sum;}
}

测试结果

 

 


http://www.ppmy.cn/news/1011135.html

相关文章

C语言错题之 8

前言&#xff1a; 今天依然是五道小题&#xff0c;都不难&#xff0c;主要是一些细节的知识。 这选择题做的真是让我大开眼界&#xff0c;长见识了&#xff08;&#x1f926;‍&#xff09; 1. 题干&#xff1a; 点击此处跳转 答案&#xff1a; ABCD 解析&#xff1a; …

无人驾驶实战-第八课(定位算法)

无人驾驶中定位的作用&#xff1a; 定位高精度地图&#xff1a;提供当前位置的静态环境感知 &#xff08;车道线/交通指示牌/红绿灯/柱子/建筑物/等&#xff09; 定位动态物体感知&#xff1a;将感知到的动态物体正确放入静态环境 定位获取位置姿态&#xff1a;用于路径规划/决…

Vue系列第八篇:echarts绘制柱状图和折线图

本篇将使用echarts框架进行柱状图和折线图绘制。 目录 1.绘制效果 2.安装echarts 3.前端代码 4.后端代码 1.绘制效果 2.安装echarts // 安装echarts版本4 npm i -D echarts4 3.前端代码 src/api/api.js //业务服务调用接口封装import service from ../service.js //npm …

postgresql 使用之 存储架构 触摸真实数据的存储结构以及组织形式,存入数据库的数据原来在这里

存储架构 ​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 概述 postgresql 数据库服务运行时&#xff0c;数据在磁…

排序八卦炉之归并、计数

文章目录 1.归并排序1.1初识代码1.2代码分析1.3复杂度1.4非递归版本1.01.初识代码2.代码分析 1.5非递归版本2.01.初识代码2.代码分析 2.计数排序2.1初始代码2.2代码分析 1.归并排序 1.1初识代码 //归并排序 时间复杂度&#xff1a;O(N*logN) 空间复杂度&#xff1a;O(N) vo…

Element-UI简介

目录 安装 常用组件 Container 布局容器 Button 按钮 MessageBox 弹框 Form 表单验证 element-ui是一个前端的ui框架&#xff0c;封装了很多已经写好的ui组件&#xff0c;例如表单组件&#xff0c;布局组件&#xff0c;表格组件.......是一套桌面端组件。 Element - 网站…

每天一道leetcode:剑指 Offer 59 - II. 队列的最大值(中等)

今日份题目&#xff1a; 请定义一个队列并实现函数 max_value 得到队列里的最大值&#xff0c;要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空&#xff0c;pop_front 和 max_value 需要返回 -1 示例1 输入: ["MaxQueue",&qu…

【Segment Anything Model】四:预处理自己的数据集接入SAM

文章目录 1️⃣预备知识2️⃣实现思路&#x1f538;脚本预处理得到包含embedd和GT的npz&#x1f538;编写Dataset类3️⃣代码&#x1f538;实现脚本预处理得到包含embedd和GT的npz代码&#x1f538;实现Dataset的代码 1️⃣预备知识 欢迎订阅本专栏&#xff08;为爱发电&#…