LeetCode-136. 只出现一次的数字(Goland实现)
发布日期:2021-06-30 23:03:12 浏览次数:3 分类:技术文章

本文共 772 字,大约阅读时间需要 2 分钟。

题号:

        给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

 示例 1:

输入: [2,2,1]输出: 1

示例 2:

输入: [4,1,2,1,2]输出: 4

 解题思路:

1、map法:遍历数组存map,遇相同元素则从map中删除,最后map输入即为解题答案

2、异或法:异或运算 相同数字异或为0【如下:debug演示】

//map法func singleNumber(nums []int) int {	var m = make(map[int]int)	for i := 0; i < len(nums); i++ {		_, ok := m[nums[i]]		if ok {			//删除重复元素			//delete(m, nums[i])		} else {			//存map 			m[nums[i]] = i		}	}	for k := range m {		return k	}	return -1}
//异或运算  相同数字异或为0func singleNumber(nums []int) int {	res := 0	for _, i := range nums {		res = res ^ i	}	return res}

 如下演示:


 往期回顾:

【1】

【2】

【3】


❤如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ 

❤如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(๑′ᴗ‵๑)づ╭❤~

❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】

❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)

转载地址:https://luoyong.blog.csdn.net/article/details/108490958 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:go-递归实现二叉树的三种排序方式(前序、中序、后序)【详细】
下一篇:LeetCode-122. 买卖股票的最佳时机 II(Goland实现)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月27日 08时01分40秒