📐 Math & Geometry

數學性質與幾何模擬。

23 題

📖 分類導讀

結合數學推理和幾何性質來解題。包含模運算、矩陣操作、座標幾何等主題。

Notes:

  • 矩陣旋轉和螺旋遍歷是常見的面試題
  • 數學題常需要找規律或利用數論性質
  • 注意整數溢位問題

常用數論工具

  • 最大公因數 (GCD):歐幾里得輾轉相除,gcd(a, b) = gcd(b, a % b);最小公倍數 lcm(a, b) = a / gcd(a, b) * b(先除再乘避免溢位)。
  • 模運算(a + b) % m(a * b) % m 可逐步取模避免中途溢位;題目常要求對 1e9 + 7 取模。注意負數取模在 Kotlin 會得到負值,需 ((x % m) + m) % m 修正。
  • 質數:判質只需試到 sqrt(n);要一次篩出範圍內所有質數用埃拉托斯特尼篩法 O(n log log n)
fun gcd(a: Int, b: Int): Int = if (b == 0) a else gcd(b, a % b)

常見公式

場景公式
1 加到 nn * (n + 1) / 2
等比和 1 + 2 + 4 + ... + 2^k2^(k+1) - 1
n 個元素的排列數n!
從 n 取 k 的組合數n! / (k! * (n - k)!)

WARNING

整數溢位是數學題最常見的坑:先估算中間值的量級,必要時改用 Long,或在運算中提前取模/改寫式子(如「先除再乘」)。

浮點數比較不要用 ==,改判斷 abs(a - b) < 1e-9;幾何題盡量用整數運算(如用叉積判方向)以避開精度誤差。

跨倉庫導讀

#6Zigzag ConversionMedium★★★★★⏱ O(n)#8String to Integer (atoi)Medium★★★★★⏱ O(n)#9Palindrome NumberEasy★★★★⏱ O(log n)#12Integer to RomanMedium★★★★★⏱ O(1)#13Roman to IntegerEasy★★★★★⏱ O(n)#43Multiply StringsMedium★★★★⏱ O(m * n)#48Rotate ImageMedium★★★★★⏱ O(n^2)#50Pow(x, n)Medium★★★★⏱ O(log n)#54Spiral MatrixMedium★★★★★⏱ O(m * n)#59Spiral Matrix IIMedium★★★★★⏱ O(n^2)#66Plus OneEasy★★★★⏱ O(n)#73Set Matrix ZeroesMedium★★★★★⏱ O(m * n)#149Max Points on a LineHard★★★★★⏱ O(n^2)#168Excel Sheet Column TitleEasy★★★★★⏱ O(log26 n)#202Happy NumberEasy★★★★⏱ O(log n)#263Ugly NumberEasy★★★★★⏱ O(log n)#1041Robot Bounded In CircleMedium★★★★★⏱ O(n)#1071Greatest Common Divisor of StringsEasy★★★★★⏱ O(m + n)#1260Shift 2D GridEasy★★★★★⏱ O(m * n)#1523Count Odd Numbers in an Interval RangeEasy★★★★★⏱ O(1)#1572Matrix Diagonal SumEasy★★★★★⏱ O(n)#2013Detect SquaresMedium★★★★★⏱ O(1)#2028Find Missing ObservationsMedium★★★★★⏱ O(m + n)