您的位置:首页 > 编程语言 > Java开发

LeetCode 137 -Single Number II ( JAVA )

2016-04-11 15:54 459 查看
Given an array of integers, every element appears three times except for one. Find that single one.

Note:

Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

public class Solution {
public int singleNumber(int[] nums) {
Arrays.sort(nums);
int number = 0;
boolean flag = true;
for(int i = 0 ; i<nums.length-2 ; i++){
if(nums[i] == nums[i+1] && nums[i+1] == nums[i+2]){
i+=2;
}else{
if(nums[i]==nums[i+1]){
number = i + 2;
}else{
number = i;
}
flag=false;
break;
}
}
if(flag){
number = nums.length-1;
}
return nums[number];
}
}



总结: 现在做题做多了,首先看到数组会想到排序,Arrays.sort() ,出里一个顺序数组远比处理一个无序的数组要方便快捷的多。循环里面if 判断是否为三个数相等,如果不想当那这三个序号中肯定有一个就是single number 了,所以再进行一次判断,看到底哪个是single number啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: