2.15 ✅ Thao tác bit (Bit Manipulation)

  • Đặc tính của phép XOR. Bài 136, 268, 389, 421.
x ^ 0 = x x ^ 11111……1111 = ~x x ^ (~x) = 11111……1111 x ^ x = 0 a ^ b = c => a ^ c = b => b ^ c = a (Tính giao hoán) a ^ b ^ c = a ^ (b ^ c) = (a ^ b)^ c (Tính kết hợp)
  • Xây dựng mask đặc biệt, đặt các vị trí cần thiết thành 0 hoặc 1.
Dọn sạch n bit ngoài cùng bên phải của x: x & ( ~0 << n ) Lấy giá trị bit thứ n của x (0 hoặc 1): (x >> n) & 1 Lấy giá trị lũy thừa ứng với bit thứ n: x & (1 << (n - 1)) Chỉ đặt bit thứ n thành 1: x | (1 << n) Chỉ đặt bit thứ n thành 0: x & (~(1 << n)) Dọn sạch từ bit cao nhất đến bit thứ n (bao gồm n): x & ((1 << n) - 1) Dọn sạch từ bit thứ n đến bit 0 (bao gồm 0): x & (~((1 << (n + 1)) - 1))
  • Các phép toán bit AND (&) có ý nghĩa đặc biệt. Bài 260, 201, 318, 371, 397, 461, 693.
X & 1 == 1: kiểm tra số lẻ (chẵn) X &= (X - 1): xoá bit 1 thấp nhất (LSB) X & -X: lấy bit 1 thấp nhất (LSB) X & ~X = 0
STTTiêu đềLời giảiĐộ khóĐộ phức tạp thời gianĐộ phức tạp bộ nhớYêu thíchTỷ lệ AC (Acceptance)
0029Chia hai số nguyên (Divide Two Integers)GoMedium17.2%
0067Cộng nhị phân (Add Binary)GoEasy52.4%
0078Các tập con (Subsets)GoMediumO(n^2)O(n)❤️74.9%
0089Mã Gray (Gray Code)GoMedium57.2%
0090Các tập con II (Subsets II)GoMedium55.9%
0136Số duy nhất (Single Number)GoEasyO(n)O(1)70.7%
0137Số duy nhất II (Single Number II)GoMediumO(n)O(1)❤️58.5%
0187Các chuỗi DNA lặp lại (Repeated DNA Sequences)GoMediumO(n)O(1)47.0%
0190Đảo bit (Reverse Bits)GoEasyO(n)O(1)❤️54.0%
0191Số lượng bit 1 (Number of 1 Bits)GoEasyO(n)O(1)66.6%
0201AND theo bit của đoạn số (Bitwise AND of Numbers Range)GoMediumO(n)O(1)❤️42.5%
0231Lũy thừa của 2 (Power of Two)GoEasyO(1)O(1)46.0%
0260Số duy nhất III (Single Number III)GoMediumO(n)O(1)❤️67.7%
0268Số bị thiếu (Missing Number)GoEasyO(n)O(1)62.6%
0287Tìm số bị lặp (Find the Duplicate Number)GoMedium59.1%
0318Tích lớn nhất của độ dài từ (Maximum Product of Word Lengths)GoMediumO(n)O(1)59.9%
0338Đếm bit (Counting Bits)GoEasyO(n)O(n)75.8%
0342Lũy thừa của 4 (Power of Four)GoEasyO(n)O(1)46.2%
0371Tổng của hai số nguyên (Sum of Two Integers)GoMediumO(n)O(1)50.7%
0389Tìm ký tự khác biệt (Find the Difference)GoEasyO(n)O(1)59.9%
0393Xác thực UTF-8 (UTF-8 Validation)GoMediumO(n)O(1)45.1%
0397Thay thế số nguyên (Integer Replacement)GoMediumO(n)O(1)35.2%
0401Đồng hồ nhị phân (Binary Watch)GoEasyO(1)O(1)52.3%
0405Chuyển số sang hệ thập lục phân (Convert a Number to Hexadecimal)GoEasyO(n)O(1)46.8%
0421XOR lớn nhất của hai số trong mảng (Maximum XOR of Two Numbers in an Array)GoMediumO(n)O(1)❤️54.0%
0461Khoảng cách Hamming (Hamming Distance)GoEasyO(n)O(1)75.0%
0473Diêm que tạo hình vuông (Matchsticks to Square)GoMedium40.2%
0476Phần bù của số (Number Complement)GoEasyO(n)O(1)67.4%
0477Tổng khoảng cách Hamming (Total Hamming Distance)GoMediumO(n)O(1)52.2%
0491Các dãy con không giảm (Non-decreasing Subsequences)GoMedium60.2%
0526Sắp xếp đẹp (Beautiful Arrangement)GoMedium64.4%
0638Ưu đãi mua sắm (Shopping Offers)GoMedium53.3%
0645Sai lệch tập hợp (Set Mismatch)GoEasy42.7%
0693Số nhị phân với bit xen kẽ (Binary Number with Alternating Bits)GoEasyO(n)O(1)❤️61.6%
0756Ma trận chuyển tiếp kim tự tháp (Pyramid Transition Matrix)GoMediumO(n log n)O(n)52.7%
0762Số nguyên tố của bit được bật trong biểu diễn nhị phân (Prime Number of Set Bits in Binary Representation)GoEasyO(n)O(1)68.0%
0784Hoán vị chữ hoa/thường (Letter Case Permutation)GoMediumO(n)O(1)73.8%
0810Trò chơi XOR bảng phấn (Chalkboard XOR Game)GoHard55.8%
0864Đường đi ngắn nhất để lấy tất cả chìa khóa (Shortest Path to Get All Keys)GoHard45.6%
0898OR bit của các mảng con (Bitwise ORs of Subarrays)GoMediumO(n)O(1)37.2%
0980Số đường đi duy nhất III (Unique Paths III)GoHard81.7%
0995Số lần lật bit liên tiếp K tối thiểu (Minimum Number of K Consecutive Bit Flips)GoHard51.2%
0996Số lượng mảng squareful (Number of Squareful Arrays)GoHard49.2%
1009Phần bù của số nguyên cơ số 10 (Complement of Base 10 Integer)GoEasy61.5%
1178Số từ hợp lệ cho mỗi câu đố (Number of Valid Words for Each Puzzle)GoHard46.3%
1239Độ dài tối đa của chuỗi ghép có ký tự duy nhất (Maximum Length of a Concatenated String with Unique Characters)GoMedium52.2%
1310Truy vấn XOR của mảng con (XOR Queries of a Subarray)GoMedium72.3%
1442Đếm bộ ba tạo hai mảng có XOR bằng nhau (Count Triplets That Can Form Two Arrays of Equal XOR)GoMedium76.1%
1461Kiểm tra chuỗi có chứa tất cả mã nhị phân độ dài K không (Check If a String Contains All Binary Codes of Size K)GoMedium56.6%
1486Phép toán XOR trong mảng (XOR Operation in an Array)GoEasy84.6%
1655Phân phối số nguyên lặp lại (Distribute Repeating Integers)GoHard39.3%
1659Tối đa hóa hạnh phúc trên lưới (Maximize Grid Happiness)GoHard38.8%
1680Nối các số nhị phân liên tiếp (Concatenation of Consecutive Binary Numbers)GoMedium57.0%
1681Độ không tương thích tối thiểu (Minimum Incompatibility)GoHard37.8%
1684Đếm số chuỗi nhất quán (Count the Number of Consistent Strings)GoEasy82.3%
1720Giải mã mảng XOR (Decode XORed Array)GoEasy85.8%
1734Giải mã hoán vị XOR (Decode XORed Permutation)GoMedium63.0%
1738Tìm giá trị tọa độ XOR lớn thứ K (Find Kth Largest XOR Coordinate Value)GoMedium61.0%
1763Chuỗi con "nice" dài nhất (Longest Nice Substring)GoEasy61.5%
------------------------------------------------------------------------------------------------------------------------------------------------