Description (C語言)
John這個農民養了N頭牛 ( 1 ≤ N ≤ 1000 )。有一天,他把牛排成一行,每頭牛都有一個"品種編碼",例如,水牛的編碼都是1,黃牛是2,奶牛是3,等等,它們隨機分布在這一行中。第i頭牛的品種記錄在數組B[i]中。
農民John希望這一行牛中如果有連續一片品種相同的牛放在一起,看起來就更加爽心悅目了。於是他從這一排牛中拿走某個品種的牛,以便創造出這樣的一片。請你幫他計算一下,如果拿走某個品種的牛後,所能得到最多的品種相同的連續的牛有多少頭。
Input
第一行:總的牛的數量N
第二行至N+1行:每行是一個正整數B[i],表示第i頭牛的品種。0 ≤ B[i] ≤ 1,000,000
Output
輸出一個正整數a,表示John所能制造出的擁有相同品種的連續的牛的最大數量。
Sample Input
9
2
7
3
7
7
3
7
5
7
Sample Output
4
Hint
Sample Input的解釋:一共有9頭牛,排成一行後的品種分別是 2, 7, 3, 7, 7, 3, 7, 5, 7
Sample Output的解釋:拿掉所有品種為3的牛後,這行牛變成 2, 7, 7, 7, 7, 5, 7,這樣,就有連續4頭牛的品種是7了。
如果拿掉2,就變成 7, 3, 7, 7, 3, 7, 5, 7 ,最多只有2頭品種為7的牛連續在一起;
如果拿掉7,就變成 2, 3, 3, 5 ,就最多只有2頭品種為3的牛連續在一起;
如果拿掉5,就變成 2, 7, 3, 7, 7, 3, 7, 7 ,也是最多只有2頭品種為7的牛連續在一起;
所以,能夠得到的最大連續品種的牛的數量是4。
1、找出共有幾個品種,即多少個不同的數字;
2、刪掉一個品種,計算最大連續數;
3、確定哪個品種連續數最大。
這是常規思路。好像沒什麼簡單算法。