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

边栏推荐
- (the first set of course design) sub task 1-5 317 (100 points) (dijkstra: heavy edge self loop)
- 第一人称视角的角色移动
- FairyGUI增益BUFF数值改变的显示
- isEmpty 和 isBlank 的用法区别
- [Offer18]删除链表的节点
- Comparative analysis of the execution efficiency of MySQL 5.7 statistical table records
- GNSS定位精度指标计算
- What is the maximum length of MySQL varchar field
- Particle system for introduction to unity3d Foundation (attribute introduction + case production of flame particle system)
- Compilation principle: preprocessing of source program and design and implementation of lexical analysis program (including code)
猜你喜欢

Force buckle 1189 Maximum number of "balloons"
![[Clickhouse kernel principle graphic explanation] about the collaborative work of partitioning, indexing, marking and compressed data](/img/28/221b0a51ef5f2e8ed5aeca2de8f463.jpg)
[Clickhouse kernel principle graphic explanation] about the collaborative work of partitioning, indexing, marking and compressed data
![[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等](/img/11/ee0628a68542236fc641966579a31a.png)
[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等

音乐播放(Toggle && PlayerPrefs)

FairyGUI人物状态弹窗

FairyGUI簡單背包的制作

Affichage du changement de valeur du Buff de gain de l'interface graphique de défaillance

Gravure sans fil Bluetooth sur micro - ordinateur à puce unique

Programming homework: educational administration management system (C language)

Teach you to release a DeNO module hand in hand
随机推荐
[Chongqing Guangdong education] reference materials for regional analysis and planning of Pingdingshan University
基本Dos命令
HCIP Day 12
MySQL error warning: a long semaphore wait
Fabrication d'un sac à dos simple fairygui
Unity3D摄像机,键盘控制前后左右上下移动,鼠标控制旋转、放缩
[offer29] sorted circular linked list
[算法] 剑指offer2 golang 面试题2:二进制加法
FairyGUI复选框与进度条的组合使用
How to improve the deletion speed of sequential class containers?
Office prompts that your license is not genuine pop-up box solution
Acwing-116 pilot brother
341. Flatten nested list iterator
FairyGUI条子家族(滚动条,滑动条,进度条)
[算法] 剑指offer2 golang 面试题9:乘积小于k的子数组
[算法] 剑指offer2 golang 面试题8:和大于或等于k的最短子数组
[Offer29] 排序的循环链表
[899]有序队列
SVN更新后不出现红色感叹号
1041 Be Unique (20 point(s))(哈希:找第一个出现一次的数)