直通BAT 資料結構與演算法十 排列組合

2021-08-04 12:36:41 字數 2057 閱讀 3238

排列組合常考題型:

1.括號合法問題

//假設有n對左右括號,請求出合法的排列有多少個?合法是指每乙個括號都可以找到與之配對的括號,比如n = 1時,()是合法的,但是)(為不合法。 //

//給定乙個整數n,請返回所求的合法排列數。保證結果在int範圍內。 //

//測試樣例:

// 1

//返回:1

class parenthesissequence

for (int i = n+1; i > 0; --i)

return res; }

};

2.進出棧問題

//n個數進出棧的順序有多少種?假設棧的容量無限大。 //

//給定乙個整數n,請返回所求的進出棧順序個數。保證結果在int範圍內。 //

//測試樣例:

//1//返回:1

class inoutstack

for (int j = n+1; j > 0; --j)

return res; }

};

3.二叉樹結構問題

//求n個無差別的節點構成的二叉樹有多少種不同的結構? //

//給定乙個整數n,請返回不同結構的二叉樹的個數。保證結果在int範圍內。 //

//測試樣例:

//1//返回:1

class treecount

for (int j = n + 1; j > 0; --j)

return res; }

};

4.高矮排列問題

//12個高矮不同的人,排成兩排,每排必須是從矮到高排列,而且第二排比對應的第一排的人高,問排列方式有多少種? //

//給定乙個偶數n,請返回所求的排列方式個數。保證結果在int範圍內。 //

//測試樣例:

//1//返回:1

class highshortsort

for (int j = n/2 + 1; j > 0; --j)

return res; }

};

5.排隊買票問題

//2n個人排隊買票,n個人拿5塊錢,n個人拿10塊錢,票價是5塊錢1張,每個人買一張票,售票員手裡沒有零錢,問有多少種排隊方法讓售票員可以順利賣票。 //

//給定乙個整數n,請返回所求的排隊方案個數。保證結果在int範圍內。 //

//測試樣例:

//1//返回:1

class buytickets

for (int j = n + 1; j > 0; --j)

return res; }

};

6.錯裝信封問題

//有n個信封,包含n封信,現在把信拿出來,再裝回去,要求每封信不能裝回它原來的信封,問有多少種裝法 ? //

//給定乙個整數n,請返回裝發個數,為了防止溢位,請返回結果mod 1000000007的值。保證n的大小小於等於300。 //

//測試樣例:

//2//返回:1

//分析:

表示n封信的方法數

//2.將信n放在第i個信封內,i有n - 1中選擇

//3.分兩種情況:將第i封信放在第n個信封則剩下n - 2封信,即f(n - 2)

//其實就是假設n是另乙個i位,然後i不能放在該位,剩下為f(n - 1)

//4.可得f(n) = (n - 1)*(f(n - 1) + f(n - 2))

class combineenvelopebymistake

if (n == 2)

vectorarr(n + 1, 0);

arr[2] = 1;

for (int i = 3; i <= n; ++i)

return arr[n] % 1000000007; }

};

資料結構(十) 排序

1 順序表 pragma once includeconst int maxsize 20 typedef int datatype typedef struct datalist void swap datalist l,int a,int b void createlist datalist l...

直通BAT 資料結構與演算法八 位運算

1.不用任何額外變數交換兩個整數的值 請編寫乙個演算法,不用任何額外變數交換兩個整數的值。給定乙個陣列num,其中包含兩個值,請不用任何額外變數交換這兩個值,並將交換後的陣列返回。測試樣例 1,2 返回 2,1 vectorgetswap getswap vectornum 2.返回a和b中較大的,...

Python 資料結構與演算法 快排

1.先從待排序的陣列中找出乙個數作為基準數 取第乙個數即可 然後將原來的陣列劃分成兩部分 小於基準數的左子陣列和大於等於基準數的右子陣列。然後對這兩個子陣列再遞迴重複上述過程,直到兩個子陣列的所有數都分別有序。最後返回 左子陣列 基準數 右子陣列 即是最終排序好的陣列。def quicksort n...