兩次過 Lintcode 130 堆化

2021-09-13 19:53:33 字數 487 閱讀 9363

給出乙個整數陣列,堆化操作就是把它變成乙個最小堆陣列。

對於堆陣列a,a[0]是堆的根,並對於每個a[i],a [i * 2 + 1]是a[i]的左兒子並且a[i * 2 + 2]是a[i]的右兒子。

給出[3,2,1,4,5],返回[1,2,3,4,5]或者任何乙個合法的堆陣列

o(n)的時間複雜度完成堆化

什麼是堆?

什麼是堆化?

如果有很多種堆化的結果?

首先將陣列看作是乙個完全二叉樹結構,需要尋找到最後乙個非葉子節點(即最後葉子節點的父節點),從此節點向前遍歷,依次進行siftdown操作

public class solution 

}private void siftdown(int a, int k)

}private void swap(int a, int i, int j)

}

兩次過 Lintcode 56 兩數之和

給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n 1。example1 給出 numbers 2,7,11,15 target 9,返回 0,1 example2 ...

兩次過 Lintcode 1209 構造矩形

對於乙個web開發者,如何設計頁面大小很重要。所以,給定乙個矩形大小,設計其長 l 寬 w 使其滿足如下要求 1.矩形區域大小需要和給定目標相等。2.寬度w不大於長度l,也即l w.3.長和寬的差異盡可能的小。返回設計好的長度l和寬度w。樣例 輸入 4 輸出 2,2 解釋 目標區域是4,所有可能的構...

兩次過 Lintcode 212 空格替換

設計一種方法,將乙個字串中的所有空格替換成 20。你可以假設該字串有足夠的空間來加入新的字元,且你得到的是 真實的 字元長度。你的程式還需要返回被替換後的字串的長度。對於字串 mr john smith 長度為13 替換空格之後,引數中的字串需要變為 mr 20john 20smith 並且把新長度...