Rumah  >  Artikel  >  Java  >  Nombor Tunggal I

Nombor Tunggal I

DDD
DDDasal
2024-09-19 06:17:33515semak imbas

Single Number I

Masalah

Kita kena cari nombor yang hadir sekali sahaja.
Pendekatan brute force ialah menggunakan HashMap untuk menjejaki kiraan nilai dan kemudian mengembalikan nilai yang mempunyai kiraan =1;

Pendekatan optimum menggunakan manipulasi bit:

Kami tahu bahawa 1^0 = 1, 0 ^1 = 1, 0 ^ 0 = 0 , 1 ^ 1= 0 untuk semua gabungan lain.
ia bermakna exor memberikan 0 untuk nilai yang sama oleh itu jika kita exor semua nilai dalam tatasusunan ia akan memberikan hanya nombor yang kiraan adalah 1( kerana nilai selebihnya akan bertukar 0)

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;
    }
}

Atas ialah kandungan terperinci Nombor Tunggal I. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn