[color=red]題目都是網上看到的。試著解答一下,全當腦力訓練。以後會陸續追加,持續更新本帖。[/color]
95.華為面試題
1 判斷一字串是不是對稱的,如:abccba
[color=darkblue]思路:題目的解答是一目了然的。如下偽**。
boolean check(str)
}return true;
}
[/color]
2.用遞迴的方法判斷整數組a[n]是不是公升序排列
[color=darkblue]思路:先判斷當前元素以後的子陣列是否為公升序,若是則只需判斷當前元素是否<=子陣列的第乙個元素即可。如下偽**。
boolean check(int arr, int s)
return false;
}
[/color]
3. 給出乙個函式來輸出乙個字串的所有排列。
[color=darkblue]思路:先給乙個例子,aabc,則所有的排序如下:
a開頭:aabc, aacb, abac, abca, acab, acba
b開頭:baac, baca, bcaa
c開頭:caab, caba, cbaa
演算法描述:
1、對字串進行預處理,得到不重複字符集以及各個字元出現頻率。
例如得到[a,b,c], [2,1,1]
2、設字符集的第乙個元素作為當前元素。例如元素a。
3、如果當前元素頻率大於0,則把當前元素放入結果快取裡,此時字元的頻率需要-1。
如果當前元素頻率等於0, 執行5步。
例如取出a放入結果快取,則各個變數變成如下:
頻率集:[1,1,1]
結果快取:[a]
4、3步處理後,結果快取長度會增加1,只需計算剩餘字符集以及其相應頻率條件的下的所有排列,
把每個排序加到當前結果快取後面,即可得到以當前結果快取為字首的所有結果排列。
【計算剩餘字符集以及其相應頻率條件的下的所有排列】為原問題的子問題,只需遞迴執行除1步外的各步即可。
具體操作為:
1)拷貝當前頻率集作為遞迴引數。
2)執行遞迴處理
5、把字符集的下乙個元素設為當前元素,重複3步的處理[/color]
[b]4. 最大子陣列和[/b]
遞迴演算法:
public class maxsubarraysum
private void maxsubarraysum( int a, int n )
if ( a[n - 1] > maxsumincluden )
return;
}maxsubarraysum( a, n - 1 );
if ( a[n - 1] + maxsumincluden > a[n - 1] )
else
if ( result < maxsumincluden )
}public static void main(string args);
system.out.println("maxsubarraysum=" + new maxsubarraysum().execute( a ));}}
C 面試題目
1 ispostback正確的是 首次載入頁面的ispostback的值為false 重新整理頁面後的ispostback的值為true 第三個選項忘了 2 頁面傳值的幾種方式 request.querystring session server.transfer 3 什麼是瀏覽器的 無狀態 如何解...
面試題目總結
1.char p和char p的區別。1 char getstring void void main 2 char getstring void void main 為什麼 1 輸出的是亂碼,2 能夠輸出 hello world?hello world 作為靜態字串實際上儲存在文字常量區 參見 棧和...
c 面試題目
摘要 12個c語言面試題,涉及指標 程序 運算 結構體 函式 記憶體,看看你能做出幾個!1.gets 函式 問 請找出下面 裡的問題 include int main void 答 上面 裡的問題在於函式 gets 的使用,這個函式從 stdin 接收乙個字串而不檢查它所複製的快取的容積,這可能會導...