leetcode筆試題知識點總結,模板總結

離散數學篇

取模運算的性質

詳見連接https://blog.csdn.net/Mtrix/article/details/47087647

快速冪算法

mk%pm^{k}\%p時間複雜度O(log(mk))=O(k)O(log(m_{k})) = O(k)

int qmi(int m, int k, int p) //calculate m^k%p
{
    int rst  = 1;
    int base = m;
    while(k){
        if (k&1) //the last bit is 1
            rst = (rst * base) % p; 
        base = (base*base)%p;
        k = k>>1;
    }
    return rst;
}

歐幾里得算法

求兩個正整數的最大公約數,時間複雜度爲O(log(n))O(log(n))

int gcd(int a, int b){
	return b ? gcd(b, a%b) : a;
}

擴展歐幾里得算法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章