当前位置:网站首页>[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

边栏推荐
- Latex learning
- Itext 7 生成PDF总结
- MySQL error warning: a long semaphore wait
- InnoDB dirty page refresh mechanism checkpoint in MySQL
- [算法] 劍指offer2 golang 面試題2:二進制加法
- (the first set of course design) 1-4 message passing interface (100 points) (simulation: thread)
- Introduction to the daily practice column of the Blue Bridge Cup
- Meanings and differences of PV, UV, IP, VV, CV
- What are the functions and features of helm or terrain
- Unity3D,阿里云服务器,平台配置
猜你喜欢

Fairygui gain buff value change display

Mysql database reports an error: row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT=DY

Unity3d, Alibaba cloud server, platform configuration

FairyGUI循环列表

Unity3d makes the registration login interface and realizes the scene jump

Halcon knowledge: gray_ Tophat transform and bottom cap transform

Gravure sans fil Bluetooth sur micro - ordinateur à puce unique

【无标题】

Excel导入,导出功能实现

Fairygui joystick
随机推荐
Acwing-116 pilot brother
使用rtknavi进行RT-PPP测试
[算法] 剑指offer2 golang 面试题10:和为k的子数组
What is the maximum length of MySQL varchar field
(课设第一套)1-4 消息传递接口 (100 分)(模拟:线程)
FairyGUI按钮动效的混用
idea中好用的快捷键
rtklib单点定位spp使用抗差估计遇到的问题及解决
First use of dosbox
MySQL shutdown is slow
KF UD分解之UD分解基础篇【1】
Affichage du changement de valeur du Buff de gain de l'interface graphique de défaillance
Unity3D摄像机,键盘控制前后左右上下移动,鼠标控制旋转、放缩
平衡二叉树详解 通俗易懂
MySQL performance tuning - dirty page refresh
Database table splitting strategy
Get the position of the nth occurrence of the string
Fairygui character status Popup
[Chongqing Guangdong education] Shandong University College Physics reference materials
FairyGUI循環列錶