演算法題 (推理題
題目:64匹馬,8條賽道,找出最快的4匹馬,最少需要比賽多少次?
解答:首先分8組比賽,得到8組的前4名,剩32匹;讓8組的第1名進行比賽,得到前4名(a1,b1,c1,d1,由快到慢),後4名的同組12匹馬均淘汰(每組2,3,4名比第1名都慢,這四組其第1名至少排第5,其餘肯定不屬於最快的4匹馬),剩16匹;同理,d1組的2,3,4名淘汰,c1組的3,4名淘汰,b1組的4名淘汰,剩餘10匹;最後,最快已確定為a1,剩餘9匹選擇任意8匹進行比賽1次,淘汰後5名,剩餘4匹進行比賽,得到最快3匹。比賽場次8+1+1+1=11次。
程式設計題題目:將字串str1(簡稱為a)編輯為字串str2(簡稱為b),有三種操作插入、刪除、替換,各自代價為ic、dc、rc,請問最小代價是多少?
解答:(淦,竟然還是動態規劃,虧我面試前之前刷了好多動態規劃題,都白刷了 ,查了之後發現這在力扣算困難等級,算是"72. 編輯距離"的變種,但我還是個刷簡單題的小白 = = )
本質上三種操作:
在單詞 a 中插入乙個字元;
在單詞 b 中插入乙個字元;
修改單詞 a 的乙個字元。
解題思路: dp[i][j]代表a的前i個字元到b的前j個字元的代價,狀態轉移關係為,由三種狀態dp[i-1][j],dp[i][j-1],dp[i-1][j-1]可得,代價分別為dp[i-1][j]+dc(在i-1,j的代價基礎上刪除得到i,j的代價),dp[i][j-1]+ic(在i,j-1的代價基礎上插入得到i,j的代價),若是a第i字母不等於b第j字母,代價為dp[i-1][j-1]+rc(替換),否則為dp[i-1][j-1](相等不用替換)。三種代價取最小,即為dp[i][j]的代價,最後返回dp[a.size()][b.size()].
class
solution
}return dp[n]
[m];}}
;
【碎碎念】 害,被迫得學著搶計算機飯碗,淚目 t t
牛客日誌 面試題
新視窗開啟網頁,用到以下哪個值 值描述 blank 在新視窗中開啟被鏈結文件。self 預設。在相同的框架中開啟被鏈結文件。parent 在父框架集中開啟被鏈結文件。top 在整個視窗中開啟被鏈結文件。framename 在指定的框架中開啟被鏈結文件。下列js可以讓乙個input的背景顏色變成紅色的...
面試題 PHP面試題
建議 比如是系統配置,缺少了無法執行,自然使用 require 如果某一段程式少了,只是少了統計 訪問的,不是必不可少的。可以使用 include 而加不加 once 就是效率上的區別,雖然系統會幫你考慮只包含一次,但系統的判斷會降低效率,因此,更應該在開發之初,把目錄結構調整高好,盡量不使用 on...
面試題 騰訊2012面試題
問題描述 例如手機朋友網有n個伺服器,為了方便使用者的訪問會在伺服器上快取資料,因此使用者每次訪問的時候最好能保持同一臺伺服器。已有的做法是根據serveripindex qqnum n 得到請求的伺服器,這種方法很方便將使用者分到不同的伺服器上去。但是如果一台伺服器死掉了,那麼n就變為了n 1,那...