当前位置:网站首页>[algorithm] sword finger offer2 golang interview question 4: numbers that appear only once
[algorithm] sword finger offer2 golang interview question 4: numbers that appear only once
2022-07-06 12:51:00 【Deng Jiawen jarvan】
[ Algorithm ] The finger of the sword offer2 golang Interview questions 4: A number that appears only once
subject 1:
Give you an array of integers nums , Except that one element only appears once Outside , Every other element just happens to appear Three times . Please find and return the element that only appears once .
Example 1:
Input :nums = [2,2,3,2]
Output :3
Example 2:
Input :nums = [0,1,0,1,0,1,100]
Output :100
Tips :
1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
nums in , Except that one element only appears once Outside , Every other element just happens to appear Three times
Advanced : Your algorithm should have linear time complexity . Can you do this without using extra space ?
source : Power button (LeetCode)
link :https://leetcode-cn.com/problems/WGki4K
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
Ideas 1:
// Ideas : appear 3 Time , Use bs []int To record 32 Single digit 1 The number of
// If bs[i] The number of is 0 perhaps 3 Multiple , let bs[i] = 0, conversely bs[i] =1
// Final material bs => int
Code
func singleNumber(nums []int) int {
// Ideas : appear 3 Time , Use bs []int To record 32 Single digit 1 The number of
// If bs[i] The number of is 0 perhaps 3 Multiple , let bs[i] = 0, conversely bs[i] =1
// Final material bs => int
// Processing parameters
if len(nums) == 0 {
return 0
}
// structure bs
bs := make([]int,32)
// Traverse element to bs assignment
for i := 0; i < len(nums); i++ {
for j := 0; j < 32; j++ {
if (nums[i] & (1<<j)) != 0 {
bs[j] ++
}
}
}
//bs[i] The number of is 0 perhaps 3 Multiple , let bs[i] = 0, conversely bs[i] =1
for j := 0; j < 32; j++ {
if bs[j]%3 != 1 {
bs[j] = 0
}else {
bs[j] = 1
}
}
// format bs by res int
//tips: bug golang 64 Bit machine int Namely 64 position
var res int32
for j := 0; j < 32; j++ {
if bs[j] == 1 {
res = res | (1 << j)
}
}
return int(res)
}
test

边栏推荐
- Particle system for introduction to unity3d Foundation (attribute introduction + case production of flame particle system)
- 2021.11.10汇编考试
- [leetcode19] delete the penultimate node in the linked list
- MySQL performance tuning - dirty page refresh
- Unity3D,阿里云服务器,平台配置
- Gravure sans fil Bluetooth sur micro - ordinateur à puce unique
- [Chongqing Guangdong education] Shandong University College Physics reference materials
- Database table splitting strategy
- Excel导入,导出功能实现
- Theoretical derivation of support vector machine
猜你喜欢

Halcon knowledge: gray_ Tophat transform and bottom cap transform

Fairygui character status Popup

NRF24L01 troubleshooting

Fairygui loop list
![[算法] 剑指offer2 golang 面试题2:二进制加法](/img/c2/6f6c3bd4d70252ba73addad6a3a9c1.png)
[算法] 剑指offer2 golang 面试题2:二进制加法

FairyGUI摇杆

PR 2021 quick start tutorial, first understanding the Premiere Pro working interface

Unity3d, Alibaba cloud server, platform configuration

Teach you to release a DeNO module hand in hand

Naive Bayesian theory derivation
随机推荐
What are the advantages of using SQL in Excel VBA
Easy to use shortcut keys in idea
VLSM variable length subnet mask partition tips
Knowledge system of digital IT practitioners | software development methods -- agile
idea中好用的快捷键
Introduction to the daily practice column of the Blue Bridge Cup
[算法] 剑指offer2 golang 面试题5:单词长度的最大乘积
[leetcode15] sum of three numbers
Office提示您的许可证不是正版弹框解决
1041 Be Unique (20 point(s))(哈希:找第一个出现一次的数)
Containers and Devops: container based Devops delivery pipeline
isEmpty 和 isBlank 的用法区别
Fabrication of fairygui simple Backpack
Office prompts that your license is not genuine pop-up box solution
[Chongqing Guangdong education] Shandong University College Physics reference materials
Design and implementation of general interface open platform - (39) simple and crude implementation of API services
Liste des boucles de l'interface graphique de défaillance
[算法] 剑指offer2 golang 面试题4:只出现一次的数字
FairyGUI复选框与进度条的组合使用
Lock wait timeout exceeded try restarting transaction