2023-07-04 Daily Challenge
Today I have done leetcode's July LeetCoding Challenge with cpp
.
July LeetCoding Challenge 4
Description
Single Number II
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.
Solution
class Solution {
public:
int singleNumber(vector<int>& nums) {
int a = 0;
int b = 0;
for(auto n : nums) {
int tmp = (a&(~b)&(~n)) | ((~b)&(~a)&n);
b = (b&(~a)&(~n)) | (a&n&(~b));
a = tmp;
}
return a;
}
};
// Accepted
// 14/14 cases passed (3 ms)
// Your runtime beats 98.52 % of cpp submissions
// Your memory usage beats 72.62 % of cpp submissions (9.4 MB)