O n 時間解決的面試題 二進位制矩陣中1的個數

2022-07-13 22:00:20 字數 375 閱讀 4291

問題描述

給定n*n的01方陣,每一行都是降序排列,即先前的一段一定是1,到10分界處之後才是全0,求1最多的那行中1的個數

分析問題

如果數出每一行1的個數,然後再看哪一行1的個數最多,這樣時間複雜度是o(n^2)

如果用二分法優化,可以找出每一行0和1的分界處,然後就知道了每一行的1的個數,時間複雜度為nlogn

還有一種時間複雜度為n的方法,演算法的策略師如果某個位置是1,那麼向右走,如果是0,則向下走,這樣的策略使得我們能夠遍歷到最優解,這個思想也是我們不需要遍歷所有的可行域,只需要我們遍歷的過程一定能夠掃過最優解即可

演算法實現

int sol(vector> &a)

return best;

}

面試題 二進位制

之前論壇看到乙個面試題,很基礎的考察按位符運算,總結如下 按位與 只有對應的兩個二進位均為1時 結果位才為 1,否則為0。舉例 比如9 5,其實就是1001 101 1,因此9 5 1 規律 二進位制中,與 1相 就保持原位,與 0相 就為 0int fun int nvalue return nc...

負二進位制的面試題

今天看到一篇關於面試atc的心得,呵呵,裡面提到了乙個負二進位制的題目 d m 也真夠能折騰的。1.如何用負二進位制表述十進位制等式5 3 8?原題 解 dcba 2 d 2 3 c 2 2 b 2 1 a 2 0 dec d 2 3 c 2 2 b 2 1 d dec 則 101 neg bin ...

mysql 二進位制時間 mysql 二進位制日誌

如果mysql伺服器啟用了二進位制日誌,你可以使用mysqlbinlog工具來恢復從指定的時間點開始 例如,從你最後一次備份 直到現在或另乙個指定的時間點的資料。mysqlbinlog 用於處理二進位制日誌檔案的實用工具 要想從二進位制日誌恢復資料,你需要知道當前二進位制日誌檔案的路徑和檔名。一般可...