本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/50276549


Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.

For example:

Given nums = [1, 2, 1, 3, 2, 5], return [3, 5].

思路:

(1)题意为给定一个整数数组,其中有两个元素仅仅出现一次,其余所有的元素都出现两次,请找出这个两个只出现一次的元素。

(2)由于有两个元素出现了一次,就不能用^的方法进行解决。这里需要借助一个Map来实现,其中key为数组中元素,value为该元素在数组中出现的次数。首先,遍历数组,若遍历的当前元素不在map中,则将当前元素存入map中,value置为1;若存在于map中,则将其对应的value值加1。这里还设置一变量存储所遍历元素在数组中个数大于2的元素数量。其次,创建一个数组,数组大小为原数组长度减去存储的变量数值,然后遍历map,将map中value值为1的元素依次存入创建的数组中,即为所求。

(3)详情见下方代码。希望本文对你有所帮助。

算法代码实现如下:

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

public class Single_Number_III {

	public static void main(String[] args) {
		singleNumber(new int[] { 0, 0, 1, 2 });
	}

	public static int[] singleNumber(int[] nums) {

		if (nums == null || nums.length == 0)
			return nums;

		int len = nums.length;
		int p = 0;
		Map<Integer, Integer> maps = new LinkedHashMap<Integer, Integer>();
		for (int i = 0; i < len; i++) {
			if (maps.get(nums[i]) == null) {
				maps.put(nums[i], 1);
			} else {
				maps.put(nums[i], maps.get(nums[i]) + 1);
				p = p + maps.get(nums[i]);
			}
		}

		int[] arr = new int[len - p];
		int t = 0;
		Set<Integer> keySet = maps.keySet();
		for (Integer integer : keySet) {
			if (maps.get(integer) == 1) {
				arr[t++] = integer;
			}
		}

		return arr;
	}
}

Leetcode_260_Single Number III的更多相关文章

  1. leetcode-Single Number III 找独数

    Single Number III Given an array of numbers nums, in which exactly two elements appear only once and ...

  2. [Locked] Strobogrammatic Number & Strobogrammatic Number II & Strobogrammatic Number III

    Strobogrammatic Number A strobogrammatic number is a number that looks the same when rotated 180 deg ...

  3. leetcode 136. Single Number 、 137. Single Number II 、 260. Single Number III(剑指offer40 数组中只出现一次的数字)

    136. Single Number 除了一个数字,其他数字都出现了两遍. 用亦或解决,亦或的特点:1.相同的数结果为0,不同的数结果为1 2.与自己亦或为0,与0亦或为原来的数 class Solu ...

  4. leetcode 136 Single Number, 260 Single Number III

    leetcode 136. Single Number Given an array of integers, every element appears twice except for one. ...

  5. LeetCode 260. Single Number III(只出现一次的数字 III)

    LeetCode 260. Single Number III(只出现一次的数字 III)

  6. Single Number III(LintCode)

    Single Number III Given 2*n + 2 numbers, every numbers occurs twice except two, find them. Example G ...

  7. LeetCode169 Majority Element, LintCode47 Majority Number II, LeetCode229 Majority Element II, LintCode48 Majority Number III

    LeetCode169. Majority Element Given an array of size n, find the majority element. The majority elem ...

  8. LeetCode136 Single Number, LeetCode137 Single Number II, LeetCode260 Single Number III

    136. Single Number Given an array of integers, every element appears twice except for one. Find that ...

  9. 【刷题-LeeetCode】260. Single Number III

    Single Number III Given an array of numbers nums, in which exactly two elements appear only once and ...

随机推荐

  1. 集合框架之Queue接口

    Queue接口 在处理元素前用于保存元素的 collection.除了基本的 Collection 操作外,队列还提供其他的插入.提取和检查操作.每个方法都存在两种形式:一种抛出异常(操作失败时),另 ...

  2. 剑指offer面试题5 从头到尾打印链表(java)

    注:(1)这里体现了java数据结构与C语言的不同之处 (2)栈的操作直接利用stack进行 package com.xsf.SordForOffer; import java.util.Stack; ...

  3. Android开发_TextView跑马灯

    关键代码: android:singleLine="true" android:ellipsize="marquee" android:focusable=&q ...

  4. TCP连接建立系列 — 客户端的端口选取和重用

    主要内容:connect()时的端口选取和端口重用. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 端口选取 connect()时本地端口是如何选取的呢 ...

  5. Xcode7.2使用sqlite3数据库的方法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 之前版本的Xcode是可以直接连接sqlite3的库文件的,但 ...

  6. Java相关错误

    http://blog.csdn.net/pipisorry/article/details/51291063 使用hadoop jar ./Hw2Part1.jar /hw2/example-inp ...

  7. Uva - 1589 - Xiangqi

    Xiangqi is one of the most popular two-player board games in China. The game represents a battle bet ...

  8. 1045. Favorite Color Stripe (30) -LCS允许元素重复

    题目如下: Eva is trying to make her own color stripe out of a given one. She would like to keep only her ...

  9. UNIX网络编程——I/O复用:select和poll函数

    我们看到TCP客户同时处理两个输入:标准输入和TCP套接字.我们遇到的问题是就在客户阻塞于(标准输入上)fgets调用,服务器进程会被杀死.服务器TCP虽然正确的给客户TCP发送了一个FIN,但是既然 ...

  10. 【一天一道LeetCode】#119. Pascal's Triangle II

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...