Phiên bản cập nhật tháng 7
1/7-11:55: Xin chào tháng 7, nỗ lực hết mình ! 4/7-20:39: Mình sẽ làm 50 bài Leetcode từ giờ đến ngày mai, hiện tại được 10/50, tại sao lại là Leetcode, mình sẽ kể sau, những bài mình làm sẽ ở mức Easy và Medium. 7/7-00:20: Đây là một bài khá hay, tìm max của phép XOR giữa hai số trong mảng đã cho, ví dụ: [3,10,5,25,2,8], max = 5^25 = 28 với độ phức tạp thời gian O(N). 1.1>3(11), 10(1010), 5(101), 25(11001), 2(10), 8(1000), cài đặt một cây tiền tố (prefix tree (trie)), coi mỗi từ là một chuỗi nhị phân. 1.2> Tách mỗi từ trong chuỗi nhị phân bằng cách: bit = num&(1<<i) với 31>=i>=0 (giới hạn của int), đã xong phần insert. 2.1> Tìm tất cả các phép XOR trong bài trên Trie vừa cài đặt, nên nhớ phép XOR xuất hiện giá trị khi hai bit khác nhau, tức 0^1=1, 1^0=0, còn lại bằng 0, vậy gỉa sử xx0xx là vị trí hiện tại ta đang đứng, để ảnh hưởng đến kết quả bài toán thì phải tìm số xx1xx, vì vậy, ta lấy flipBit là đảo ngược của bit ở trên, thao tác cũng gần giống nh