From bc75c820da52e035241dc2e0f497f31d99730825 Mon Sep 17 00:00:00 2001 From: xxxVitoxxx Date: Sun, 13 Oct 2024 17:34:27 +0800 Subject: [PATCH] add leetcode 190 --- 190.reverse_bits/main.go | 39 +++++++ 190.reverse_bits/main_test.go | 31 ++++++ 190.reverse_bits/reverse_bits2.png | Bin 0 -> 90728 bytes 190.reverse_bits/solution.md | 157 +++++++++++++++++++++++++++++ README.md | 1 + 5 files changed, 228 insertions(+) create mode 100644 190.reverse_bits/main.go create mode 100644 190.reverse_bits/main_test.go create mode 100644 190.reverse_bits/reverse_bits2.png create mode 100644 190.reverse_bits/solution.md diff --git a/190.reverse_bits/main.go b/190.reverse_bits/main.go new file mode 100644 index 0000000..ab4fa20 --- /dev/null +++ b/190.reverse_bits/main.go @@ -0,0 +1,39 @@ +package main + +// time complexity: O(1) +// thought we have a loop in the algorithm, the number of iteration +// is fixed regardless the input, +// since the integer is of fixed-size(32-bits) in our problem. +// +// space complexity: O(1) +func reverseBits(num uint32) uint32 { + result := uint32(0) + power := uint32(31) + for num != 0 { + result += (num & 1) << power + num = num >> 1 + power -= 1 + } + return uint32(result) +} + +// mask and shift +// time complexity: O(1) +// space complexity: O(1) actually, we did not even create any +// new variable in the function. +// +// 1. first, we break the original 32-bits into 2 blocks of 16 bits, and switch them. +// 2. we then break the 16-bits blocks into 2 blocks of 8 bits. +// similarly, we switch the position of the 8-bits blocks. +// 3. we then continue to break the blocks into smaller blocks, until we reach the level +// with the block of 1 bit. +// 4. at each of the above steps, we merge the intermediate results into a single integer +// which serves as the input for the next step. +func reverseBits2(num uint32) uint32 { + num = (num & 0xffff0000 >> 16) | (num & 0x0000ffff << 16) + num = (num & 0xff00ff00 >> 8) | (num & 0x00ff00ff << 8) + num = (num & 0xf0f0f0f0 >> 4) | (num & 0x0f0f0f0f << 4) + num = (num & 0xcccccccc >> 2) | (num & 0x33333333 << 2) + num = (num & 0xaaaaaaaa >> 1) | (num & 0x55555555 << 1) + return num +} diff --git a/190.reverse_bits/main_test.go b/190.reverse_bits/main_test.go new file mode 100644 index 0000000..11f49bb --- /dev/null +++ b/190.reverse_bits/main_test.go @@ -0,0 +1,31 @@ +package main + +import ( + "strconv" + "testing" +) + +func TestReverseBits(t *testing.T) { + for _, tt := range []struct { + binaryStr string + want string + }{{ + binaryStr: "00000010100101000001111010011100", + want: "00111001011110000010100101000000", + }} { + num, _ := strconv.ParseInt(tt.binaryStr, 2, 32) + want, _ := strconv.ParseInt(tt.want, 2, 32) + + num1 := num + got := reverseBits(uint32(num1)) + if got != uint32(want) { + t.Errorf("got: %32b, want: %32b", got, want) + } + + num2 := num + got = reverseBits2(uint32(num2)) + if got != uint32(want) { + t.Errorf("got: %32b, want: %32b", got, want) + } + } +} diff --git a/190.reverse_bits/reverse_bits2.png b/190.reverse_bits/reverse_bits2.png new file mode 100644 index 0000000000000000000000000000000000000000..41b1b854f0bdb4d2b3287a5db7adde73b630ff9e GIT binary patch literal 90728 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�RmUdBET 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 Jsj$A^{{d%Y#P0wA literal 0 HcmV?d00001 diff --git a/190.reverse_bits/solution.md b/190.reverse_bits/solution.md new file mode 100644 index 0000000..c672436 --- /dev/null +++ b/190.reverse_bits/solution.md @@ -0,0 +1,157 @@ +# Solution + +## reverseBits + +因 n 是 32-bit 的數字,首先取得 n 最右邊的 bit ,並把它左移 31 位後與 result 相加,最後在將 n 右移一位並重複該流程直到 n 為 0(左移的次數需遞減)。 + +Q: 如何取得 n 最右邊的 bit +A: 利用 `&` 判斷,因為 `0 & 1 = 0` 、 `1 & 1 = 1` ,所以 `任何數 & 1` 就可以取得最右邊的 bit + +Q: 為什麼第一次要左移 31 位 +A: 因為 n 是 32-bits + +### Dry Run + +以 4-bits 的 5 示範。 + +``` +循環1 +n = 0101 (5) +result = 0000 (0) +power = 3 (左移的距離) + +result = 0000 + (n & 1) << power -> 1000 +n = n > 1 -> 0010 +power = power - 1 -> 2 + +循環2 +n = 0010 +result = 1000 +power = 2 (左移的距離) + +result = 1000 + (n & 1) << power -> 1000 +n = n > 1 -> 0001 +power = power - 1 -> 1 + +循環3 +n = 0001 +result = 1000 +power = 1 (左移的距離) + +result = 1000 + (n & 1) << power -> 1010 +n = n > 1 -> 0000 +power = power - 1 -> 0 + +因 n = 0 所以直接回傳 result (1010 -> 10) +``` +## reverseBits2 + +1. 將 32-bits 分成兩個 16 bit 的區塊在進行交換 +2. 將 16-bits 分成兩個 8 bit 的區塊在進行交換 +3. 持續分成兩個區塊直到區分出來的區塊為 1 bit +4. 在上述步驟中,我們將中間結果合併成一個整數作為下一循環的 input + +![image](./reverse_bits2.png) + +我們用 **OR** 將兩個 bit 區塊合併 +|A|B|A\|B| +|:---:|:---:|:---:| +|0|0|0| +|1|0|1| +|0|1|1| +|1|1|1| + +### Dry Run + +n = abcdefghijklmnopqrstuvwxyzABCDEF(*假設字母都代表 1*) +首先先將 n 分成兩個 16-bits 的區塊並交換它再重組起來 +``` +abcdefghijklmnop qrstuvwxyzABCDEF +將第一區塊向右位移 16(一半),而第二區塊向左位移 16 +並用 `OR` 將其組合起來會變成 +qrstuvwxyzABCDEF abcdefghijklmnop +``` + +將 16-bits 區塊分成兩個 8-bits 的區塊並交換它再重組起來 +``` + qrstuvwx yzABCDEF abcdefgh ijklmnop +&11111111 00000000 11111111 00000000(0xff00ff00) +--------------------------------- + qrstuvwx 00000000 abcdefgh 00000000 + + right shift 8 -> 00000000qrstuvwx00000000abcdefgh + + qrstuvwx yzABCDEF abcdefgh ijklmnop +&00000000 11111111 00000000 11111111(0x00ff00ff) +--------------------------------- + 00000000 yzABCDEF 00000000 ijklmnop + << 8 + 變成 yzABCDEF00000000ijklmnop00000000 + + 透過 `OR` 組合變成 + yzABCDEFqrstuvwxijklmnopabcdefgh +``` + +將 8-bits 區塊分成兩個 4-bits 的區塊並交換它再重組起來 +``` + yzAB CDEF qrst uvwx ijkl mnop abcd efgh +&1111 0000 1111 0000 1111 0000 1111 0000(0xf0f0f0f0) +--------------------------------- + yzAB 0000 qrst 0000 ijkl 0000 abcd 0000 + >> 4 變成 + 0000yzAB0000qrst0000ijkl0000abcd + + yzAB CDEF qrst uvwx ijkl mnop abcd efgh +&0000 1111 0000 1111 0000 1111 0000 1111(0x0f0f0f0f) +--------------------------------- + 0000 CDEF 0000 uvwx 0000 mnop 0000 efgh + << 4 變成 + CDEF0000uvwx0000mnop0000efgh0000 + +透過 `OR` 組合變成 +CDEFyzABuvwxqrstmnopijklefghabcd +``` + +將 4-bits 區塊分成兩個 2-bits 的區塊並交換它再重組起來 +``` + CD EF yz AB uv wx qr st mn op ij kl ef gh ab cd +&11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00(0xcccccccc) +--------------------------------- + CD 00 yz 00 uv 00 qr 00 mn 00 ij 00 ef 00 ab 00 + >> 2 變成 + 00CD00yz00uv00qr00mn00ij00ef00ab + + CD EF yz AB uv wx qr st mn op ij kl ef gh ab cd +&00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11(0x33333333) +--------------------------------- + 00 EF 00 AB 00 wx 00 st 00 op 00 kl 00 gh 00 cd + << 2 變成 + EF00AB00wx00st00op00kl00gh00cd00 + + 透過 `OR` 組合變成 + EFCDAByzwxuvstqropmnklijghefcdab +``` + +將 2-bits 區塊分成兩個 1-bits 的區塊並交換它再重組起來 +``` + E F C D A B y z w x u v s t q r o p m n k l i j g h e f c d a b +&1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0(0xaaaaaaaa) +--------------------------------- + E 0 C 0 A 0 y 0 w 0 u 0 s 0 q 0 o 0 m 0 k 0 i 0 g 0 e 0 c 0 a 0 + >> 1 變成 + 0E0C0A0y0w0u0s0q0o0m0k0i0g0e0c0a + + E F C D A B y z w x u v s t q r o p m n k l i j g h e f c d a b +&0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1(0x55555555) +--------------------------------- + 0 F 0 D 0 B 0 z 0 x 0 v 0 t 0 r 0 p 0 n 0 l 0 j 0 h 0 f 0 d 0 b + << 1 變成 + F0D0B0z0x0v0t0r0p0n0l0j0h0f0d0b0 + +透過 `OR` 組合變成 +FEDCBAzyxwvutsrqponmlkjihgfedcba +``` + +## Reference + +- [video](https://www.youtube.com/watch?v=-5z9dimxxmI&t=896s) diff --git a/README.md b/README.md index 41a5c4c..43b80e1 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ |180|[Consecutive Numbers](https://leetcode.com/problems/consecutive-numbers)|$\color{orange}{\textsf{Medium}}$|[MySQL](https://github.com/xxxVitoxxx/leetcode/blob/main/180.consecutive_numbers/main.sql)| |185|[Department Top Three Salaries](https://leetcode.com/problems/department-top-three-salaries)|$\color{red}{\textsf{Hard}}$|[MySQL](https://github.com/xxxVitoxxx/leetcode/blob/main/185.department_top_three_salaries/main.sql)| |186|[Reverse Words in a String II :lock:](https://leetcode.com/problems/reverse-words-in-a-string-ii)|$\color{orange}{\textsf{Medium}}$|[Go](https://github.com/xxxVitoxxx/leetcode/blob/main/186.reverse_words_in_a_string_II/main.go)| +|190|[Reverse Bits](https://leetcode.com/problems/reverse-bits)|$\color{green}{\textsf{Easy}}$|[Go](https://github.com/xxxVitoxxx/leetcode/blob/main/190.reverse_bits/main.go)| |191|[Number of 1 Bits](https://leetcode.com/problems/number-of-1-bits)|$\color{green}{\textsf{Easy}}$|[Go](https://github.com/xxxVitoxxx/leetcode/blob/main/191.number_of_1_bits/main.go)| |196|[Delete Duplicate Emails](https://leetcode.com/problems/delete-duplicate-emails)|$\color{green}{\textsf{Easy}}$|[MySQL](https://github.com/xxxVitoxxx/leetcode/blob/main/196.delete_duplicate_emails/main.sql)| |197|[Rising Temperature](https://leetcode.com/problems/rising-temperature)|$\color{green}{\textsf{Easy}}$|[MySQL](https://github.com/xxxVitoxxx/leetcode/blob/main/197.rising_temperature/main.sql)|