標籤:
題目:
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
中文(給定一個整數的數組,每個整數都出現了兩次,只有一個出現了一次,找到它 建議不使用額外的記憶體空間)
思路:利用^運算子
二元 ^ 運算子是為整型和 bool 類型預定義的。對於整型,^ 將計算運算元的按位“異或”。對於 bool 運算元,^ 將計算運算元的邏輯“異或”;也就是說,若且唯若只有一個運算元為 true 時,結果才為 true。
代碼:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace LeetCode{ class SingleNumberSolution { //static void Main() //{ // SingleNumberSolution s = new SingleNumberSolution(); // int[] nums = {1, 1, 2, 3, 3, 4, 4}; // Console.WriteLine(s.SingleNumber(nums)); //} public int SingleNumber(int[] nums) { int singleNum = nums[0]; for (int i = 1; i < nums.Length; i++) { singleNum ^= nums[i]; } return singleNum; } }}
[LeetCode136]Single Number