leecode 137. Single Number II

原创 2016年08月29日 15:29:14

题意:给定一个数组,数组中存放多个三个数相同的数,其中一个数只有一个,例如这种的{1,2,2,2,3,3,3}。

解题思路:将数组排序后能够变成{1,2,2,2,3,3,3}这种形式,我设定一个数字k,用做基数的作用,当k%3==0,表示前3、6、9...等没有单独一个数字的。重点就是考虑最后一个数字是唯一的情况。具体的说明代码里面,给你点想象的空间。


	public int singleNumber(int[] nums) {
		if (nums.length <= 3)
			return 1;
		Arrays.sort(nums);
		int result = 0;
		int inter = nums[0];
		int k = 1;
		for (int i = 1; i < nums.length; i++) {
			if (inter == nums[i]) {
				k++;
			} else {
				if (k % 3 != 0) {
					result = i - 1;
					break;
				} else {
					k++;
					inter = nums[i];
				}
			}
		}
		// 最后一个数字是唯一的
		if (result == 0 && k != 1)
			return nums[nums.length - 1];
		return nums[result];
	}


版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode(137)Single NumberII

题目如下: Given an array of integers, every element appears three times except for one. Find that single...
  • feliciafay
  • feliciafay
  • 2014年02月09日 10:15
  • 3032

【LeetCode-面试算法经典-Java实现】【137-Single Number II(只字出一次的数字II)】

【137-Single Number II(只出现一次的数字II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given an array of integers, ...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月18日 06:24
  • 4184

LeetCode 137:Single Number II

Given an array of integers, every element appears three times except for one. Find that single one. ...
  • sunao2002002
  • sunao2002002
  • 2015年06月01日 22:36
  • 5024

[C++]LeetCode: 67 Single Number II

题目: Given an array of integers, every element appears three times except for one. Find that single...
  • cinderella_niu
  • cinderella_niu
  • 2015年01月04日 22:18
  • 655

leetcode-java-137. Single Number II

方法一: 用的容器map解决的问题,但是19ms 方法二: 参考别人的做法 可以给数组排序,然后判断挨着的三个是否相同public class Solution { public in...
  • github_34514750
  • github_34514750
  • 2016年06月28日 11:35
  • 356

LeetCode || Single Number II

Single Number II  Total Accepted: 12144 Total Submissions: 37399My Submissions Given an ...
  • jiadebin890724
  • jiadebin890724
  • 2014年04月09日 23:35
  • 18973

137. Single Number II

显现a的左起第i+1位: a & 1 把a的左起第i+1位置零:a &= ~(1 把a的左起第i+1位置1:result |= 1 创建一个长度为32的数组a,a[i]表示所有数字在i位出现的...
  • wusecaiyun
  • wusecaiyun
  • 2015年08月19日 00:43
  • 146

single-number、single-number2,数组中只出现一次的数字

题目描述:single-number1 一个数组中除了一个数字外,其余数字均出现两次,找出只出现一次的数字。 要求线性复杂度 方法:两个相同的数字异或得0,一个数字和0异或结果是它本身。 pu...
  • jingsuwen1
  • jingsuwen1
  • 2016年05月27日 20:17
  • 354

【LeetCode】137. Single Number II

137. Single Number II Given an array of integers, every element appears three times except for one...
  • winghare
  • winghare
  • 2016年01月23日 14:18
  • 177

LeetCode 137. Single Number II

Given an array of integers, every element appears three times except for one. Find that single one. ...
  • github_34333284
  • github_34333284
  • 2016年04月09日 00:51
  • 97
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leecode 137. Single Number II
举报原因:
原因补充:

(最多只允许输入30个字)