av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

什么是核心代碼模式,什么又是ACM模式?

現(xiàn)在很多企業(yè)都在??蜕线M行面試,很多錄友和我反饋說搞不懂??蜕陷斎氪a的ACM模式。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比沙灣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式沙灣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋沙灣地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

什么是ACM輸入模式呢?就是自己構造輸入數(shù)據(jù)格式,把要需要處理的容器填充好,OJ不會給你任何代碼,包括include哪些函數(shù)都要自己寫,最后也要自己控制返回數(shù)據(jù)的格式。

而力扣上是核心代碼模式,就是把要處理的數(shù)據(jù)都已經(jīng)放入容器里,可以直接寫邏輯,例如這樣:

 
 
 
 
  1. class Solution {
  2. public:
  3.     int minimumTotal(vector>& triangle) {
  4.     }
  5. };

如果大家從一開始學習算法就一直在力扣上的話,突然切到??途W(wǎng)上的ACM模式會很不適應。

因為我上學的時候就搞ACM,在POJ(北大的在線判題系統(tǒng))和ZOJ(浙大的在線判題系統(tǒng))上刷過6、7百道題目了,對這種ACM模式就很熟悉。

接下來我給大家講一下ACM模式應該如何寫。

這里我拿??蜕?騰訊2020校園招聘-后臺 的面試題目來舉一個例子,本題我不講解題思路,只是拿本題為例講解ACM輸入輸出格式。

題目描述:

由于業(yè)績優(yōu)秀,公司給小Q放了 n 天的假,身為工作狂的小Q打算在在假期中工作、鍛煉或者休息。他有個奇怪的習慣:不會連續(xù)兩天工作或鍛煉。只有當公司營業(yè)時,小Q才能去工作,只有當健身房營業(yè)時,小Q才能去健身,小Q一天只能干一件事。給出假期中公司,健身房的營業(yè)情況,求小Q最少需要休息幾天。

輸入描述:

第一行一個整數(shù) 表示放假天數(shù)

第二行 n 個數(shù) 每個數(shù)為0或1,第 i 個數(shù)表示公司在第 i 天是否營業(yè)

第三行 n 個數(shù) 每個數(shù)為0或1,第 i 個數(shù)表示健身房在第 i 天是否營業(yè)

(1為營業(yè) 0為不營業(yè))

輸出描述:

一個整數(shù),表示小Q休息的最少天數(shù)

示例一:

輸入:

4

1 1 0 0

0 1 1 0

輸出:

2

這道題如果要是力扣上的核心代碼模式,OJ應該直接給出如下代碼:

 
 
 
 
  1. class Solution {
  2. public:
  3.     int getDays(vector& work, vector& gym) {
  4.         // 處理邏輯
  5.     }
  6. };

以上代碼中我們直接寫核心邏輯就行了,work數(shù)組,gym數(shù)組都是填好的,直接拿來用就行,處理完之后 return 結果就完事了。

那么看看ACM模式我們要怎么寫呢。

ACM模式要求寫出來的代碼是直接可以本地運行的,所以我們需要自己寫include哪些庫函數(shù),構造輸入用例,構造輸出用例。

拿本題來說,為了讓代碼可以運行,需要include這些庫函數(shù):

 
 
 
 
  1. #include
  2. #include
  3. using namespace std;

然后開始寫主函數(shù),來處理輸入用例了,示例一 是一個完整的測試用例,一般我們測了一個用例還要測第二個用例,所以用:while(cin>>n) 來輸入數(shù)據(jù)。

這里輸入的n就是天數(shù),得到天數(shù)之后,就可以來構造work數(shù)組和gym數(shù)組了。

此時就已經(jīng)完成了輸入用例構建,然后就是處理邏輯了,最后返回結果。

完整代碼如下:

 
 
 
 
  1. #include
  2. #include
  3. using namespace std;
  4. int main() {
  5.     int n;
  6.     while (cin >> n) {
  7.         vector gym(n);
  8.         vector work(n);
  9.         for (int i = 0; i < n; i++) cin >> work[i];
  10.         for (int i = 0; i < n; i++) cin >> gym[i];
  11.         int result = 0;
  12.         // 處理邏輯 
  13.         cout << result << endl;
  14.     }
  15.     return 0;
  16. }

可以看出ACM模式要比核心代碼模式多寫不少代碼,相對來說ACM模式更鍛煉代碼能力,而核心代碼模式是把側重點完全放在算法邏輯上。

國內企業(yè)現(xiàn)在很多都用牛客來進行面試,所以這種ACM模式大家還有必要熟悉一下,以免面試的時候因為輸入輸出搞不懂而錯失offer。

如果大家有精力的話,也可以去POJ上去刷刷題,POJ是ACM選手選擇OJ,輸入模式也是ACM模式。


網(wǎng)站名稱:什么是核心代碼模式,什么又是ACM模式?
URL分享:http://uogjgqi.cn/article/cdgjhcd.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流