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

边栏推荐
- Itext 7 生成PDF总结
- PRIDE-PPPAR源码解析
- Office提示您的许可证不是正版弹框解决
- Unity3d camera, the keyboard controls the front and rear left and right up and down movement, and the mouse controls the rotation, zoom in and out
- isEmpty 和 isBlank 的用法区别
- Liste des boucles de l'interface graphique de défaillance
- Unity场景跳转及退出
- MySQL error warning: a long semaphore wait
- Containers and Devops: container based Devops delivery pipeline
- PR 2021 quick start tutorial, first understanding the Premiere Pro working interface
猜你喜欢

(5) Introduction to R language bioinformatics -- ORF and sequence analysis
![[Nodejs] 20. Koa2 onion ring model ----- code demonstration](/img/a8/a4390238685903b63bb036206f8dcb.jpg)
[Nodejs] 20. Koa2 onion ring model ----- code demonstration

dosbox第一次使用

There is no red exclamation mark after SVN update

rtklib单点定位spp使用抗差估计遇到的问题及解决

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

Easy to use shortcut keys in idea

Derivation of logistic regression theory

2021.11.10汇编考试

First use of dosbox
随机推荐
MySQL performance tuning - dirty page refresh
idea中好用的快捷键
In 2020, the average salary of IT industry exceeded 170000, ranking first
[899] ordered queue
Naive Bayesian theory derivation
FairyGUI简单背包的制作
Unity3d, Alibaba cloud server, platform configuration
GPS高程拟合抗差中误差的求取代码实现
[offer78] merge multiple ordered linked lists
Latex learning
FairyGUI复选框与进度条的组合使用
FairyGUI增益BUFF数值改变的显示
[算法] 剑指offer2 golang 面试题7:数组中和为0的3个数字
Comparative analysis of the execution efficiency of MySQL 5.7 statistical table records
(课设第一套)1-5 317号子任务 (100 分)(Dijkstra:重边自环)
[Nodejs] 20. Koa2 onion ring model ----- code demonstration
Minio file download problem - inputstream:closed
(课设第一套)1-4 消息传递接口 (100 分)(模拟:线程)
Vulnhub target: hacknos_ PLAYER V1.1
By v$rman_ backup_ job_ Oracle "bug" caused by details