Leetcode - Single Number

À, Đạt viết nhầm, đúng như Cường nói.

xor n lần vời số 0 thì ta vẫn có lại số ban đầu

Đạt đang muốn nói về trường hợp khi n bắt đầu bằng 0 thì làm sao tìm ra được?

Với n == 0 và có 2 số 0 trong mảng

n ^= 0; // n == 0
n ^= 0; // n == 0

Khi đó mình sẽ xor tiếp cho đến khi tìm thấy số single

Với n==0 và có 1 số 0 trong mảng


n ^=0; // n == 0

Thì trường hợp có 1 số 0 trong mảng thì mình vẫn lòi ra được con số 0 này.

Thực ra bài này người ta đã giả định chuỗi nhập vào luôn đúng. Chứ không riêng vụ check cũng đã khá mệt.

1 Like

Weak testcase thì phải. Em C++, 44ms
http://ideone.com/VlTwOk

@genius_hcmus Link đấy người khác không xem được đâu

1 Like

Vẫn chưa hiểu ý Đạt.

n bắt đầu bằng 0 thì có ảnh hưởng gì?

Với n == 0 và có 2 số 0 trong mảng ==> Sai đề

Với n==0 và có 1 số 0 trong mảng ==> Không ảnh hưởng gì, 0 ^ 0 = 0

Miện là input thỏa mãn yêu cầu đề bài, có duy nhất 1 số không lặp, còn lại là các cặp số giống nhau thì kết quả luôn đúng với mọi giá trị.

Ý của Đạt là nếu n bắt đầu bằng 0, vẫn không có ảnh hưởng gì. Vì mình phải khởi tạo giá trị cho n, thì có nghĩa là n có thể là bất kỳ số nào. Kể cả số 0.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?