Try   HackMD

137. 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.

解答

Javascript

function singleNumber(nums) { let ones = 0; let twos = 0; for (const num of nums) { ones = (ones ^ num) & ~twos; twos = (twos ^ num) & ~ones; } return ones; }

看答案的,學習了,本來只會用hashmap,而且也會過ㄏㄏ,只是空間複雜度有差。
Marsgoat4 July, 2023

C#

public class Solution { public int SingleNumber(int[] nums) { int once = 0; int twice = 0; foreach(int num in nums) { once = (once ^ num) & ~twice; twice = (twice ^ num) & ~once; } return once; } }

看上面的,一開始有想到 XOR,但沒想到怎麼處理出現奇數次
JimJul 5, 2023

Reference

回到題目列表