成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

[[388280]]

現在很多企業都在牛客上進行面試,很多錄友和我反饋說搞不懂牛客上輸入代碼的ACM模式。

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

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

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

如果大家從一開始學習算法就一直在力扣上的話,突然切到牛客網上的ACM模式會很不適應。

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

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

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

題目描述:

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

輸入描述:

第一行一個整數 表示放假天數

第二行 n 個數 每個數為0或1,第 i 個數表示公司在第 i 天是否營業

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

(1為營業 0為不營業)

輸出描述:

一個整數,表示小Q休息的最少天數

示例一:

輸入:

4

1 1 0 0

0 1 1 0

輸出:

2

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

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

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

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

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

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

  1. #include<iostream> 
  2. #include<vector> 
  3. using namespace std; 

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

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

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

完整代碼如下:

  1. #include<iostream> 
  2. #include<vector> 
  3. using namespace std; 
  4. int main() { 
  5.     int n; 
  6.     while (cin >> n) { 
  7.         vector<int> gym(n); 
  8.         vector<intwork(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.         // 處理邏輯  
  14.  
  15.         cout << result << endl; 
  16.     } 
  17.     return 0; 

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

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

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

 

責任編輯:姜華 來源: 代碼隨想錄
相關推薦

2024-12-09 09:40:00

策略模式Java

2011-06-14 13:31:00

FS模式

2018-01-30 11:17:56

集群分布式SOA?

2020-09-14 17:26:48

抽象工廠模式

2024-11-08 09:41:02

2021-03-16 21:42:37

反向代理正向代理

2011-07-26 14:35:02

Windows 200安全模式

2021-11-29 10:27:24

設計模式程序員

2018-02-09 13:25:19

windows 7上帝模式

2014-12-19 11:07:18

IaaSDevOps

2015-04-02 11:04:27

云應用SaaSOFBIZ

2024-12-03 09:34:35

觀察者模 式編程Javav

2020-05-29 09:49:43

騰訊

2021-07-29 14:42:55

設計模式Java

2024-12-05 15:44:13

工廠模式接口

2024-12-09 09:30:00

適配器模式設計模式代碼

2019-02-13 14:28:59

2020-03-18 09:31:47

設計模式軟件

2020-06-12 14:17:26

開源協議ARM

2021-05-25 09:00:52

責任鏈模式設計模式面試經歷
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久aⅴ乱码一区二区三区 91综合网 | 久久久久久黄 | 一区二区福利视频 | 少妇精品亚洲一区二区成人 | 天堂av中文在线 | 欧美亚洲国产一区二区三区 | 久久久.com | 一级毛片中国 | 国产精品亚洲精品 | 亚洲第一视频网站 | 亚洲高清视频一区 | 天天看天天操 | 欧美专区在线视频 | 男人的天堂在线视频 | 午夜性视频 | 久久久久久久久久久久久91 | 亚洲综合电影 | 福利社午夜影院 | 亚洲成人一二三 | 四虎影| 毛片一级电影 | 午夜成人免费视频 | 天天看天天操 | 欧美亚洲一区二区三区 | 91黄色片免费看 | 国产美女自拍视频 | 中文字幕av第一页 | 成人福利在线 | 久久久久久黄 | av影音资源 | 日韩视频―中文字幕 | 国产精品久久久久久久久久 | 日韩视频国产 | 欧美日韩精品在线免费观看 | 免费观看一级特黄欧美大片 | 亚洲电影一区二区三区 | 99视频在线免费观看 | 综合伊人| 日韩视频一级 | 日本精品一区二区 | 99国产精品久久久 |