題目:
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...