LeetCode 136

Single Number

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?

 

1 public class Solution {
2     public int singleNumber(int[] nums) {
3         int result = 0;
4         for(int i = 0 ; i<nums.length ; i++ ){
5             result ^= nums[i];
6         }
7         return result;
8     }
9 }

 

 1 /*************************************************************************
 2     > File Name: LeetCode136.c
 3     > Author: Juntaran
 4     > Mail: JuntaranMail@gmail.com
 5     > Created Time: Tue 10 May 2016 07:37:54 PM CST
 6  ************************************************************************/
 7  
 8 /*************************************************************************
 9     
10     Single Number
11     
12     Given an array of integers, every element appears twice except for one. 
13     Find that single one.
14 
15     Note:
16     Your algorithm should have a linear runtime complexity. 
17     Could you implement it without using extra memory?
18 
19     Subscribe to see which companies asked this question
20 
21  ************************************************************************/
22 
23 #include <stdio.h>
24 
25 int singleNumber( int* nums, int numsSize )
26 {
27     int ret = 0;
28     
29     int i;
30     for( i=0; i<numsSize; i++ )
31     {
32         ret ^= nums[i];
33     }
34     return ret;
35 }
36 
37 int main()
38 {
39     int nums[] = { 1, 2, 3, 3, 1 };
40     int numsSize = 5;
41     int ret = singleNumber( nums, numsSize );
42     printf("%d\n", ret);
43 
44     return 0;
45 }

 

posted @ 2016-04-24 23:09  Juntaran  阅读(103)  评论(0编辑  收藏  举报