程式設計之美 高效率地安排見面會 貪心策略

2021-06-15 08:20:51 字數 547 閱讀 3339

每乙個面試是乙個整數的閉區間【bi,ei】表示開始時間和結束時間,有n個面試要進行,求最少的面試點。

思路:按開始時間排序,使用貪心策略,每乙個面試使用乙個最小的正整數k來表示可行的顏色,當然如果重疊了就必須使用乙個新的顏色。

c++實現:

#include #include #include using namespace std;

struct meetingm[101];

bool cmp(meeting x,meeting y)//用於排序的謂詞函式,這裡沒有抽象成為函式物件

//而是簡單使用函式指標

bool isforbidden[101];

int color[101];

int main()

{ int n=4;

m[0].b=1;m[0].e=5;m[1].b=2;m[1].e=3;m[2].b=3;m[2].e=4;m[3].b=3;m[3].e=6;

sort(m,m+4,cmp);

int nmaxcolor=0,k;

for(int i=0;i

高效率的安排見面會問題

某一天,在微軟亞洲研究院有n個面試要進行,它們的時間分別為 b i e i b i 為面試開始時間,e i 為面試結束時間 假設乙個面試者一天只參加乙個面試。為了給面試者提供乙個安靜便於發揮的環境,我們希望將這n個面試安排在若干個面試點。不同的面試在同乙個時間不能被安排在同乙個面試點。如果你是微軟亞...

高效率java程式設計

1 考慮使用靜態工廠方法代替構構方法來例項化類。2 使用私用構構函式,使類具有不可例項化的能力。3 避免建立重複的物件 4 消除過期的物件的使用 5 避免使用終結函式 6 使類和成員的可訪問性最小 7 介面優先於抽象 8 為所有的引數進行有效性檢查 9 謹慎使用過載 10 使用0長度的陣列,而不是空...

5個提高效率的程式設計工作環境

程式設計師的創造力和創新已然成為企業發展的乙個非常重要的內容,所以現在我們越來越注重於創造一種能夠促進創新行為的環境。現在我們可以發現有些工作場所已經布置了桌球和沙包,在牆上噴塗滑稽的彩色油漆裝飾,有的甚至安裝水槽之類的娛樂設施,旨在能夠啟迪員工的靈感,啟發他們的潛能。我不是這種噱頭的鐵桿粉絲,不過...