Computer science note/LeetCode

Single Number

Leetcode problem description and solution for "Single Number".

Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.
给定一个非空的整数数组,每个元素出现两次 nums ,除了一个。找到那个。

You must implement a solution with a linear runtime complexity and use only constant extra space.
您必须实现具有线性运行时复杂性的解决方案,并且仅使用常量的额外空间。

Example 1: 示例 1:

Input: nums = [2,2,1] Output: 1

Example 2: 示例 2:

Input: nums = [4,1,2,1,2] Output: 4

Example 3: 例3:

Input: nums = [1] Output: 1

Constraints: 约束:

  • 1 <= nums.length <= 3 * 104
  • -3 * 104 <= nums[i] <= 3 * 104
  • Each element in the array appears twice except for one element which appears only once.
    数组中的每个元素出现两次,但一个元素只出现一次。
package org.leetcode;  
  
public class SingleNumber {  
    public int singleNumber(int[] nums) {  
        int result = 0;  
        for (int i = 0 ; i < nums.length ; i++) {  
            result ^= nums[i];  
        }  
        return result;  
    }  
  
    public static void main(String[] args) {  
        SingleNumber obj = new SingleNumber();  
        int[] nums1 = {2,2,1};  
        int result1 = obj.singleNumber(nums1);  
        int expected1 = 1;  
        if (result1 == expected1) {  
            System.out.println("Test1 passed");  
        } else {  
            System.out.println("Test1 failed");  
        }  
  
        int[] nums2 = {4,1,2,1,2};  
        int result2 = obj.singleNumber(nums2);  
        int expected2 = 4;  
        if (result2 == expected2) {  
            System.out.println("Test2 passed");  
        } else {  
            System.out.println("Test2 failed");  
        }  
    }  
}