劍指offer 之 partition函式運用

2021-07-07 08:20:14 字數 347 閱讀 5703

1 找出陣列最小的k個數## 標題 ##

@1;最簡單也最直觀的解法。對陣列排序,順序輸出前k個數字。最快的是利用快排,時間複雜度為o(nlogn);

@2:利用快排中的partition ,該函式的思想為劃分陣列為兩部分 左半部小於樞紐值,右半邊大於樞紐值。利用該演算法,可以得出本題的演算法我們可以把最終的low值定位在 第k-1的位置。**如下。

void mypartition(data,int low,int high,int k)

for(int i=0;iprintf("%d",data[i]);

putchar("\n");

}

劍指offer之查詢

劍指offeroffer中有這樣一道題,把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。初看這道題沒有思路,而且也沒有想...

劍指Offer之 替換空格

把字串中的空格用 20代替。統計空格個數,從後往前賦字元。include using namespace std 函式功能 把字串中的空格用 20代替 思路 統計空格個數,從後往前賦字元 注意點 要判斷字串的位元組個數是否夠替換後的字元數,如果不夠則不能替換 void replacebland ch...

劍指offer之醜數

把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。對於這個問題,最容易想的就是乙個個數進行判斷,如 public static intgetuglynumber int ind...