leetCode练习(136)
来源:互联网 发布:protobuf数据解析 编辑:程序博客网 时间:2024/03/29 19:31
题目:Single Number
难度:easy
问题描述:
Given an array of integers, every element appears twice 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 E_136_SingleNumber {public int singleNumber(int[] nums) { HashSet<Integer> hs=new HashSet<>(); for(int i:nums){ if(hs.contains(i)){ hs.remove(i); }else{ hs.add(i); } } for(int i:hs){ return i; } return 0; }public static int singleNumber2(int[] nums){Arrays.sort(nums);for(int w:nums){System.out.print(w+" ");}System.out.println();for(int i=0;i<nums.length-1;i=i+2){if(nums[i]!=nums[i+1]){return nums[i];}else{continue;}}return nums[nums.length-1];}public static int singleNumber3(int[] nums){int len=nums.length; for(int i=1;i<len;i++){ nums[0]=nums[0]^nums[i]; } return nums[0];}public static void main(String[]args){int[]nums={17,12,5,-6,12,4,17,-5,2,-3,2,4,5,16,-3,-4,15,15,-4,-5,-6};System.out.println(singleNumber2(nums));}}
0 0
- leetCode练习(136)
- leetcode练习(136)
- leetCode练习(7)
- leetCode练习(9)
- leetCode练习(2)
- leetCode练习(14)
- leetCode练习(3)
- leetCode练习(4)
- leetCode练习(19)
- leetCode练习(18)
- leetCode练习(5)
- leetCode练习(15)
- leetCode练习(20)
- leetCode练习(21)
- leetCode练习(16)
- leetCode练习(17)
- leetCode练习(11)
- leetCode练习(24)
- Linux下的C语言编程——栈操作
- 微信小程序demo汇总
- org.springframework.orm.hibernate4.SessionHolder cannot be cast to org.springframework.orm.hibernate
- linux学习最新命令
- Spark2.0.1 on yarn with hue 集群搭建部署(二)spark on yarn搭建
- leetCode练习(136)
- java求解第N个素数(质数)
- 线性回归方法(1)
- Android EventLog简介
- PCA主成分分析与SVG隐语义
- SQL题
- Intelj Idea 的全键盘使用
- Ubuntu 16.0.4 安装deb文件
- thrift简单实例