華為的一道面試題的解答

2021-05-22 08:41:49 字數 624 閱讀 8661

題目:

int a[nsize]

,其中隱藏著若干

0,其餘非

0整數,寫乙個函式

int func(int* a, int nsize),使a

把0移至後面,非

0整數移至

陣列前面並保持有序,返回值為原資料中第乙個元素為

0的下標。

(盡可能不使用輔助空間且考慮效率及異常問題,注釋規範且給出設計思路

)程式如下:不使用輔助空間

int func(int* a, int nsize)

if(nsize < 1)

int count = 0;

//計算所有為0的元素個數

for(int k = 0; k < nsize; k++)

}if(count == 0)

int i = 0;

int num = nsize;

while(i < num)

a[--num] = 0;

continue;

}i++;

}return count;

}最好情況:該陣列中沒有為0元素,時間複雜度為o(n);

最壞情況:該陣列中全部為0元素,時間複雜度為o(n/2*n/2);

華為的一道面試題

通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1 僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2 壓縮欄位的格式為 字元重複的次數 字元 例如 字串 yyy...

一道sql面試題的解答

題目 寫出一條sql語句 取出表a中第31到第40記錄 sqlserver,以自動增長的id作為主鍵,注意 id可能不是連續的。解答 已測試 1 假設id是連續的 select top10 fromawhereidnot in selecttop30 idfroma 或select fromawhe...

一道sql面試題的解答

題目 寫出一條sql語句 取出表a中第31到第40記錄 sqlserver,以自動增長的id作為主鍵,注意 id可能不是連續的。解答 已測試 1 假設id是連續的 select top10 fromawhereidnot in selecttop30 idfroma 或select fromawhe...