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啦。
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啦。
相关文章推荐
- 冒泡排序原理分析及Java实现
- Java 8 新特性:Lambda 表达式
- JAVA操作mysql数据库
- Spring集成SpringMVC与Ibatis
- java中byte数组与int类型的转换的几种方式
- Java类的初始化
- SpringMVC——接收请求参数和页面传参
- struts2中迭代的用法
- Java数据类型中String、Integer、int相互间的转换
- SpringMVC整合Shiro
- JAVA知识 简单记录-多线程
- LeetCode 328 -Odd Even Linked List ( JAVA )
- Java基本数据类型的数据转化为字节数据的方法
- java中super
- Java继承
- solr入门之solr5x源码在eclipse中运行及添加mmseg分词器
- java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathLis。。。
- 二叉树根据前序后序重建
- java代码压缩文件,文件名中中文变为乱码 [
- ubuntu12替换了java,但eclipse仍然提示java版本为1.6,需要更高版本的java