刷題中優化空間和時間的小tips

2021-10-05 17:39:02 字數 329 閱讀 7854

1.用parseint代替valueof,減少裝箱和拆箱操作;

2.用switch替代if else;

if ( s.equals("..") ) {

// 這裡用到增強型 for 迴圈不能同時判斷,需要再次判空

// 而普通 for 迴圈則可寫成( !stack.isempty() && s.equals("..") )

3.如何實現迴圈陣列,即「最後乙個元素的下乙個元素是陣列的第乙個元素」。事實上,我們只要能遍歷兩遍陣列,效果就等同於迴圈。雖然建立乙個長度為原陣列二倍的陣列也可以,但為了額外空間盡可能少,這裡採用取模的方式,將索引限制在小於陣列長度的正整數範圍內。

遞迴小題中的空間換時間思想

題目 如數 1 1 2 3 5 8 13 21 34 55 序號 0 1 2 3 4 5 6 7 8 9 由使用者輸入序號,輸出對應的數值。效果 實現 include int bian int num static int shu 100 intmain return0 重複計算了太多步驟,當序號較...

演算法的時間和空間複雜度

演算法 algorithm 指用來運算元據 解決程式問題的一組方法。對於同乙個問題,使用不同的演算法,也許最終得到的結果是一樣的,但在過程中消耗的資源和時間卻會有很大的區別。主要從演算法所占用的 時間 和 空間 兩個維度去考量。時間維度 是指執行當前演算法所消耗的時間,我們通常用 時間複雜度 來描述...

空間複雜度和時間度的概念

1 時間複雜度 它是乙個函式,定量地表述了演算法占用的時間,時間複雜度使用大寫o表示,時間複雜度需要分析乙個演算法在執行過程中的 基本操作,計量所有操作的數量,假設乙個基本的操作在乙個固定的時間內完成,那麼該演算法的總執行時間和總操作量,無非就是常量係數的關係。有時對於大小相同的輸入,效率也是不同的...