LeetCode-Easy部分标签为HashTable#136 Single Number
来源:互联网 发布:node全栈工程师招聘 编辑:程序博客网 时间:2024/05/18 06:44
原题
Given an array of integers, every element appears twice except for one. Find that single one.
题目意思
整数数组,除了一个出现一次外,其他都是两次。求这个唯一出现一次的数。
题目分析
首先想到借助哈希表,向哈希表中添加,若已存在移除,最后剩下的唯一元素,即为这个唯一出现一次的数。
代码实现
这个算法能解决这个问题,因为每个数要么出现1次(只有1个出现1次),要么出现2次,所以如果哈希集合中有了这个元素,表示是重复的那个,直接移除掉即可。最后剩下的那个元素便是出现仅1次的。
public static int SingleNumber(int[] nums) { HashSet<int> hash = new HashSet<int>(); foreach(int item in nums) { if (hash.Contains(item)) hash.Remove(item); else hash.Add(item); } return hash.Min(); }
位操作算法
异或操作,抵消掉出现2次的元素,仅剩下1个出现1次的元素。
int rslt = nums[0]; for (int i = 1; i < nums.Length;i++ ) { rslt ^= nums[i]; } return rslt;
更多参考
LeetCode-Easy部分中标签为HashTable的所有题目
2 0
- LeetCode-Easy部分标签为HashTable#136 Single Number
- LeetCode-Easy部分标签为HashTable 447. Number of Boomerangs
- LeetCode-Easy部分标签为HashTable 463. Island Perimeter
- LeetCode-Easy部分标签为HashTable 409. Longest Palindrome
- 【LeetCode】(136)Single Number (Easy)
- 【Leetcode-easy-136】Single Number
- 【LeetCode】136.Single Number (Easy)
- LeetCode 136. Single Number (Easy)
- LeetCode-Easy部分中标签为HashTable的所有题目
- LeetCode-Easy部分标签为HashTable 1. Two Sum(一种战胜95%的提交版本的算法)
- leetcode 136 Single Number(难易度:Easy)
- LeetCode-Easy部分中标签为Math 268. Missing Number
- LeetCode-Easy部分中标签为Math 507. Perfect Number
- LeetCode-Easy部分标签为LinkedList 141Linked List Cycle
- LeetCode-Easy部分标签为LinkedList 206. Reverse Linked List
- LeetCode-Easy部分标签为LinkedList 234. Palindrome Linked List
- LeetCode[136. Single Number] 难度[easy]
- LeetCode-Easy刷题(31) Single Number
- bzoj3894: 文理分科
- Spark2.1集群环境搭建小结(1)
- 合并两个排序链表
- 三月三十
- 在SpringMVC下面从零开始构建WebSocket服务
- LeetCode-Easy部分标签为HashTable#136 Single Number
- 结构体对齐问题
- 机器学习(4):python基础及fft、svd、股票k线图、分形等实践
- 细说new与malloc的10点区别
- 【模拟试题】逛公园
- H.264中的一些语法定义
- SerialPort常用修改属性方法
- java 类加载原理分析
- 浏览器对象