排列木樁;及模糊距離分析
今日面試題:排列木樁
有N個木樁,高度分別為1到N。你現在要將木樁排列為一行,當你從左邊看的時候,只看到L個木樁(因為,一些高的木樁會擋住矮的木樁);從右邊看時,只看到R個木樁。給定N、L、R,你該如何排列木樁呢? 例1:N=3,L=2,R=1,可行的排列方案只有{2,1,3}。 例2:N=3,L=2,R=2,可行的排列方案有{1,3,2}{2,3,1}
======================================
模糊距離分析
原題
X和Y都是隻有0和1組成的字串。D(X,Y)稱為模糊距離,定義如下: 首先刪除X和Y從頭開始的公共子串 然後將X和Y剩下部分的長度相加得到模糊距離 例如D(1000,1111),首先,刪除子串“1”,然後剩下“000”和“111”長度都是3,相加為6,則 D(1000,1111)=6。 例如D(101,1100),首先刪除公共子串“1”,然後剩下"01"和"100"長度分別為2,3,相加為5,則 D(101,1100)=5。
問題是,給定n個只有0和1的字串,如:
1111
1000
101
1100
...
請找到最大的模糊距離,字串總數為n,字串最長為m。
分析
這個題目描述比較長,但實際上,並不難。只要耐心,看完題目,即可。描述也不晦澀。
直接想來,對於每一個01字串,與其他的每一個01字串進行模糊距離的計算,時間複雜度是O(nm),遍歷完n個字串,總的時間複雜度是O(n^2*m)。這個我們可以稱為暴力法。
如何改進上面的方法的,主要是指縮小時間複雜度。一個非常通用的方法,就是以空間換時間。如何換呢?對於模糊距離的第一個條件,我們想到什麼呢?公共字首,不知道同學們,聯想到樹形結構:trie樹沒有。例如:給定000、001、0010,我們構造如下的trie樹。
構造過程中,1為左子樹,0為右子樹。模糊距離的第一個條件是,去掉公共字首,則計算時,兩個字串,要有公共字首,也就意味著,只需要考慮開始分叉的節點,左右子樹,可以有一個沒有。這樣,我們考慮第一個分叉的節點:0,然後可以計算第二部分了,如何計算剩下長度相加呢?尤其,為了找到模糊距離的最大值,我們求得當前節點的左子樹的最大深度以及右子樹的最大深度,兩者相加,及得到一個模糊距離,為3。然後考慮1節點,右子樹為空,則模糊距離為1。綜合,最大的模糊距離為3。這裡有一個小小的技巧,構建的過程中,可以在節點中,儲存左右子樹的高度,並隨著加入新的字串,更新左右子樹的高度。總的時間複雜度為O(nm)。 根據上例,儲存的左右子樹的高度值變化如下 (left_height, right_height):
left_height: 左邊子樹的高度 right_height: 右邊子樹的高度
【分析完畢】
本文來自微信:待字閨中,2013-08-16釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。
相關文章
- 修理柵欄;及排列木樁分析
- 模糊距離;及七夕鵲橋分析
- 編輯距離及編輯距離演算法演算法
- 【Leetcode 每日一題】1030. 距離順序排列矩陣單元格(水題,曼哈頓距離排序)LeetCode每日一題矩陣排序
- 曼哈頓距離與切比雪夫距離
- 排列子串;及翻譯字串分析字串
- JavaScript 元素距離視窗頂部的距離JavaScript
- PostgreSQL遺傳學應用-矩陣相似距離計算(歐式距離,…XX距離)SQL矩陣
- JavaScript獲取元素距離文件頂部的距離JavaScript
- Laravel 距離排序Laravel排序
- unit原子距離
- 【Python】距離Python
- 最小距離分類器,互動式選取影像樣本分類資料,進行最小距離分類(實現歐式距離,馬氏距離,計程距離)
- 子串查詢;及排列子串分析
- javascript獲取元素距離網頁頂部的距離JavaScript網頁
- 曼哈頓距離與切比雪夫距離的互化
- 距離度量學習
- 【DP】編輯距離
- 一個簡單木馬分析及接管利用
- Vijos1680距離/openjudge2988計算字串的距離[DP]字串
- 空間距離計算
- milvus 使用 l2 歐式距離計算向量的距離,計算出來的距離的最大值是多少?
- jQuery獲取div距離視窗頂部或者父元素頂部的距離jQuery
- 28、(向量)歐幾里得距離計算
- 洛谷 1279 字串距離字串
- RecyclerView滑動距離計算View
- 計算字串編輯距離字串
- 編輯距離演算法演算法
- 距離-有這麼多類
- 線性dp:編輯距離
- Elasticsearch 7.2 在 Laravel 中實踐 --經緯度及距離查詢ElasticsearchLaravel
- BetaBot 木馬分析
- 木馬逆向分析
- jQuery獲取網頁中的元素距離文件邊緣的距離程式碼例項jQuery網頁
- 【scipy 基礎】--正交距離迴歸
- 動態規劃-編輯距離動態規劃
- RQNOJ 514 字串距離:dp & 字串字串
- eMarketer:定位廣告的距離問題