当前位置:网站首页>[算法] 剑指offer2 golang 面试题4:只出现一次的数字
[算法] 剑指offer2 golang 面试题4:只出现一次的数字
2022-07-06 09:18:00 【邓嘉文Jarvan】
[算法] 剑指offer2 golang 面试题4:只出现一次的数字
题目1:
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
示例 1:
输入:nums = [2,2,3,2]
输出:3
示例 2:
输入:nums = [0,1,0,1,0,1,100]
输出:100
提示:
1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次
进阶:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/WGki4K
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路1:
//思路: 出现3次,使用 bs []int 来记录 32 个位数的 1 的个数
//如果 bs[i] 的个数是 0 或者 3 的倍数,就让 bs[i] = 0,反之 bs[i] =1
//最后素材 bs => int
代码
func singleNumber(nums []int) int {
//思路: 出现3次,使用 bs []int 来记录 32 个位数的 1 的个数
//如果 bs[i] 的个数是 0 或者 3 的倍数,就让 bs[i] = 0,反之 bs[i] =1
//最后素材 bs => int
//参数处理
if len(nums) == 0 {
return 0
}
//构造 bs
bs := make([]int,32)
//遍历元素给 bs 赋值
for i := 0; i < len(nums); i++ {
for j := 0; j < 32; j++ {
if (nums[i] & (1<<j)) != 0 {
bs[j] ++
}
}
}
//bs[i] 的个数是 0 或者 3 的倍数,就让 bs[i] = 0,反之 bs[i] =1
for j := 0; j < 32; j++ {
if bs[j]%3 != 1 {
bs[j] = 0
}else {
bs[j] = 1
}
}
//格式化 bs 为 res int
//tips: bug golang 64 位机器 int 就是 64 位
var res int32
for j := 0; j < 32; j++ {
if bs[j] == 1 {
res = res | (1 << j)
}
}
return int(res)
}
测试

边栏推荐
- 基于rtklib源码进行片上移植的思路分享
- Single chip Bluetooth wireless burning
- Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]
- 地球围绕太阳转
- InnoDB dirty page refresh mechanism checkpoint in MySQL
- Itext 7 生成PDF总结
- FairyGUI按钮动效的混用
- [leetcode622]设计循环队列
- Unity3D制作注册登录界面,并实现场景跳转
- There is no red exclamation mark after SVN update
猜你喜欢

编译原理:源程序的预处理及词法分析程序的设计与实现(含代码)

Easy to use shortcut keys in idea

程序设计大作业:教务管理系统(C语言)

Esp8266 connect onenet (old mqtt mode)

Force buckle 1189 Maximum number of "balloons"

Particle system for introduction to unity3d Foundation (attribute introduction + case production of flame particle system)

Unity3d makes the registration login interface and realizes the scene jump

Unity scene jump and exit

Unity3D,阿里云服务器,平台配置

Expected value (EV)
随机推荐
MySQL shutdown is slow
Office提示您的许可证不是正版弹框解决
How to add music playback function to Arduino project
[Clickhouse kernel principle graphic explanation] about the collaborative work of partitioning, indexing, marking and compressed data
Liste des boucles de l'interface graphique de défaillance
FairyGUI简单背包的制作
[Nodejs] 20. Koa2 onion ring model ----- code demonstration
RTKLIB: demo5 b34f.1 vs b33
dosbox第一次使用
(core focus of software engineering review) Chapter V detailed design exercises
Devops' future: six trends in 2022 and beyond
FairyGUI按钮动效的混用
Expected value (EV)
The service robots that have been hyped by capital and the Winter Olympics are not just a flash in the pan
Force buckle 1189 Maximum number of "balloons"
NRF24L01故障排查
Unity场景跳转及退出
Unity3d makes the registration login interface and realizes the scene jump
[offer9] implement queues with two stacks
Conditional probability