二進位操作: 最少的bit翻轉次數 讓A OR B = C_Leetcode #1318 精選75題

2024/02/26閱讀時間約 4 分鐘

題目敘述

題目會給定三個參數a, b, c。

請問透過bit flip a 或 b 的binary bits,讓 a OR b = c 最少需要幾次bit flip?


題目的原文敘述


測試範例

Example 1:

raw-image
Input: a = 2, b = 6, c = 5
Output: 3
Explanation: After flips a = 1 , b = 4 , c = 5 such that (a OR b == c)

Example 2:

Input: a = 4, b = 2, c = 7
Output: 1

Example 3:

Input: a = 1, b = 2, c = 3
Output: 0

約束條件

Constraints:

  • 1 <= a <= 10^9

a 介於1~十億之間。

  • 1 <= b <= 10^9

b 介於1~十億之間。

  • 1 <= c <= 10^9

c 介於1~十億之間。


演算法 二進位操作 + 討論bit分布情況

先考慮單獨一個bit的情況,在推廣到其他bit,因為翻轉的規則都是通用的。

當 a OR b 結果不相等時


假如c是1:

以行動支持創作者!付費即可解鎖
本篇內容共 1634 字、1 則留言,僅發佈於Leetcode 精選75題 上機考面試題 詳解你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
43會員
285內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!