Problem
Wir müssen die Nummer finden, die nur einmal vorhanden ist.
Der Brute-Force-Ansatz besteht darin, HashMap zu verwenden, um die Anzahl der Werte zu verfolgen und dann den Wert mit count =1;
Optimaler Ansatz mittels Bitmanipulation:
Wir wissen, dass 1^0 = 1, 0 ^1 = 1, 0 ^ 0 = 0, 1 ^ 1= 0 für alle anderen Kombinationen.
Dies bedeutet, dass Exor für dieselben Werte 0 ergibt. Wenn wir also alle Werte im Array exorieren, wird nur die Zahl zurückgegeben, deren Anzahl 1 ist (da der Rest des Werts 0 wird)
TC: O(n)
SC: O(1)
class Solution { public int singleNumber(int[] nums) { int single = nums[0]; for(int i =1;i<nums.length;i++){ single = single^nums[i]; } return single; } }
Das obige ist der detaillierte Inhalt vonEinzelnummer I. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!