简洁大气蓝色文章资讯网站,网站建设外包公司怎么样,wordpress 仿简书模板,阿里云空间做的网站不收录牛客网: BM52
题目: 数组中仅2个数字出现1次#xff0c;其余出现2次
思路: 出现2次的数字异或结果为0#xff0c;另外两个不同的数字异或结果res不为0#xff0c;异或结果的二进制位必与其中一个相同#xff0c;求出二进制位为1的pos, 遍历数组#xff0c;所有此位置为1…牛客网: BM52
题目: 数组中仅2个数字出现1次其余出现2次
思路: 出现2次的数字异或结果为0另外两个不同的数字异或结果res不为0异或结果的二进制位必与其中一个相同求出二进制位为1的pos, 遍历数组所有此位置为1的数与异或结果再异或结果tmp即为其中一个出现1次的数字tmp与res再异或即可得出另一个出现1次的数字。
代码:
// gopackage main
// import fmt/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** * param nums int整型一维数组 * return int整型一维数组
*/
func FindNumsAppearOnce( nums []int ) []int {// write code hereres : nums[0]for i : 1; i len(nums); i {res ^ nums[i]}pos : 0for res pos 0 {if res pos 1 1 {break} else {pos}}tmp : resfor i : 0; i len(nums); i {if nums[i] pos 1 1 {tmp ^ nums[i]}}res res ^ tmpif res tmp {return []int{tmp, res}} else {return []int{res, tmp}}
}