All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0101_0200.s0137_single_number_ii.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0101_0200.s0137_single_number_ii;

// #Medium #Array #Bit_Manipulation #2022_06_24_Time_0_ms_(100.00%)_Space_42.1_MB_(84.59%)

/**
 * 137 - Single Number II\.
 *
 * Medium
 *
 * Given an integer array `nums` where every element appears **three times** except for one, which appears **exactly once**. _Find the single element and return it_.
 *
 * You must implement a solution with a linear runtime complexity and use only constant extra space.
 *
 * **Example 1:**
 *
 * **Input:** nums = [2,2,3,2]
 *
 * **Output:** 3 
 *
 * **Example 2:**
 *
 * **Input:** nums = [0,1,0,1,0,1,99]
 *
 * **Output:** 99 
 *
 * **Constraints:**
 *
 * *   1 <= nums.length <= 3 * 104
 * *   -231 <= nums[i] <= 231 - 1
 * *   Each element in `nums` appears exactly **three times** except for one element which appears **once**.
**/
public class Solution {
    public int singleNumber(int[] nums) {
        int ones = 0;
        int twos = 0;
        for (int num : nums) {
            ones = (ones ^ num) & (~twos);
            twos = (twos ^ num) & (~ones);
        }
        return ones;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy