brain

給出二維平面上的兩個正方形,找到一條直線能同時將兩個正方形都分為面積相等的兩半。

一條直線只要過正方形的中心,就一定會將它分為面積相等的兩半。(矩形也一樣) 那么,我們只要作一條過這兩個正方形中心點的直線, 即可同時把這兩個正方形都分為面積相等的兩半。

設計算法,找到質(zhì)因數(shù)只有3,5或7的第k個數(shù)。

  1. 初始化結果res=1和隊列q3,q5,q7
  1. 分別往q3,q5,q7插入13,15,1*7
  2. 求出三個隊列的隊頭元素中最小的那個x,更新結果res=x
  3. 如果x在:
    q3中,那么從q3中移除x,并向q3,q5,q7插入3x,5x,7x
    q5中,那么從q5中移除x,并向q5,q7插入5
    x,7x(不往q3中插入3x,因為這個數(shù)在q5中已經(jīng)插入過了,eg:53插過35)
    q7中,那么從q7中移除x,并向q7插入7*x
  4. 重復步驟3-5,直到找到第k個滿足條件的數(shù)

線性求k最大

線性求k最大利用的是快排中的partition函數(shù)。每次選取一個基準元素pivot (可以用第1個元素,也可以隨機選),然后將其它元素與pivot對比。大于等于pivot 的放到左邊,小于pivot的放到右邊。調(diào)用一次partition后, pivot左邊的數(shù)都是大于等于它的,pivot右邊的數(shù)都是小于它的。 如果pivot此時正好是第k-1個元素,那么它左邊加上它一共有k個元素, 而且這k個元素都是比右邊的元素要大的,即它們就是最大的k個元素。如果pivot 左邊不足k-1個元素,則在它右邊進行同樣的partition操作。如果pivot 左邊是多于k-1個元素的,則在它左邊進行partition操作。

該算法會改變數(shù)組中元素的順序,期望時間復雜度是O(n)。

寫一個程序,找到由其它單詞組成的最長單詞。

按單詞的長度從大到小排序。(先尋找最長的單詞)

不斷地取單詞的前綴s,當s存在于單詞數(shù)組中,遞歸調(diào)用該函數(shù), 判斷剩余串是否可以由其它單詞組成。如果可以,返回true。

隨機產(chǎn)生一些數(shù)傳遞給一個函數(shù),寫程序找出并維護這些數(shù)的中位數(shù)。

中位數(shù)有一個性質(zhì),它平分了小于他的元素和大于他的元素,然后我們現(xiàn)在要動態(tài)加入新的元素。 新加入的元素,我們要怎么辦呢?我們希望把元素分成兩個集合A和B,使得滿足以下兩個性質(zhì):

A中元素均小于等于B中元素
A中的元素和B中元素一樣多或只多一個。
如此,我們可以在log n時間內(nèi)給出中位數(shù),因為中位數(shù)要么是A的最大值,要么是A的最大值和B的最小值的平均值。同時我們也可以在log n時間加入一個新的元素并維持這兩個性質(zhì):先把新元素加入A,然后把A的最大值移動到B使性質(zhì)1滿足,然后判斷A和B的大?。ㄈ绻鸖ize A小于B則把B中最小元移入A)使性質(zhì)2滿足。

堆可以完美的完成上述操作,當然也可以用平衡二叉樹解決,但是平衡樹編寫復雜,面試中不建議也需要實現(xiàn)此類數(shù)據(jù)結構。我們還是要用到堆這個在面試中容易出現(xiàn),編寫難度不大又很實用的數(shù)據(jù)結構。我們維護一個大根堆P(根節(jié)點值最大)和一個小根堆Q(根節(jié)點值最?。?,對應集合A和B,維護上述兩個性質(zhì)即可。

最大子矩陣和

O(nnm)正在思考有沒有更優(yōu)的。
循環(huán)i,j,b[k]為原矩陣第k列從i到j行的數(shù)字和,b[k]這一維用dp,sum<0時,sum = b[k],or sum = max(sum,sum+b[k])

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,325評論 0 17
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,030評論 0 2
  • 持續(xù)更新關于R的知識哦,劉小澤又回歸啦!經(jīng)歷了一個星期寫函數(shù)的折磨,雖然沒有完成,但是框架成形,可能是我自己要求比...
    劉小澤閱讀 998評論 0 9
  • 女兒是這樣的愛畫畫,她說,媽媽,我最愛上專業(yè)課。這份喜愛如此的純凈,不像我,要加上許多的權衡,掂量。 有的功課,她...
    平淡也是渡過閱讀 248評論 4 3
  • C語言筆記(持續(xù)更新中) Chapter1:介紹 沒啥好說的,我覺得記住這個就行(畢竟學的是語言不是計算機組成原理...
    crabor閱讀 983評論 0 1

友情鏈接更多精彩內(nèi)容