[筆記] 最重要的小事:輸入範圍


Posted by tzutzu858 on 2020-06-28

  1. 空間限制
  2. 時間限制
  3. 型態限制

空間限制

  • int : 4 bytes
  • double : 8 bytes
  • JS 中的 Number : 8 bytes

如果今天要用到一百萬個數字

(8*1e6)/ 1024 = 7812 KB = 7.6 MB
// 1e6 => 1 後面跟著 6 個 0

如果是要用到十億個數字

(8*1e8)/ 1024 = 781200 KB = 7600 MB = 7.4 GB 
// 要用到 7.4 GB 的記憶體,不是所有電腦都有那麼多記憶體

排序十萬個數字,可以全部載入到記憶體
但如果要排十億個數字呢?
不可能一次載入到記憶體,可能先把排好的一部分數字放在檔案裡,所以範圍決定解題方法

時間限制

初學先求有再求好,之後補充

型態限制

  • int : -2147483648 ~ 2147483647 (-2^31 ~ 2^31-1)
  • JS 數字 : Number.NAX_SAFE_INTEGER
  • 浮點數精準度問題









Related Posts

Riverpod Generator

Riverpod Generator

計畫列表

計畫列表

[筆記] 串接 HTTP API 實戰

[筆記] 串接 HTTP API 實戰


Comments