---
# System prepended metadata

title: Leetcode 基礎知識

---

# Leetcode 基礎知識

1.演算法 常見的時間複雜度所需的時間排列
時間複雜度Big O所需時間的順序（由快到慢）


O(1)最快代表不論輸入多少時間都是固定的；O(nn最慢代表時間為輸入數量自身的次方倍。

O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

>C++ TOOL use to binary serach

【用途】針對「已經排序」的資料進行binary search。
* vector <int> v;
* sort(v.begin(), v.end());
    
1. lower_bound：找出vector中「大於或等於」val的「最小值」的位置：
auto it = lower_bound(v.begin(), v.end(), val);
     
2. upper_bound：找出vector中「大於」val的「最小值」的位置：
auto it = upper_bound(v.begin(), v.end(), val);


