g0101_0200.s0137_single_number_ii.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
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