問題描述:
有乙個m*n的二維球場看台,已知同乙個球迷群體的球迷會選擇相鄰座位,不同球迷群體的球迷選擇不相鄰的座位。給定座位選擇矩陣(0表示未選擇,1表示已選擇),要求找出球迷群體的個數以及最大的球迷群體的人數。
(相鄰包括前後、左右、斜對角相鄰)
問題分析:
對於每乙個座位,採用遞迴方法檢視其8個相鄰位置。對於已經訪問過的位置,注意做標記。
**實現:
#include #include using namespace std;
int check(int i, int j);
int m, n; // m行n列
vector> seats; // 沒球迷:0,有球迷:1,若被訪問過,則置為-1
void main()
seats.push_back(row);
} // 聚合
int groupsize;
int maxsize = 0;
int groupnum = 0;
for (int i = 0; i < m; i++) }
// 輸出
cout << groupnum << "," << maxsize << endl;
cin.get();
}// 以i, j為中心遞迴搜尋
int check(int i, int j)
今日頭條筆試題(一)
一列火車有n個車廂標記為1,2,3,4,5,6 n 現在因為某些原因,需要調整車廂的相對順序 例如需要將車廂順序調整為2,3,1,4,5,6 n 由於車廂龐大,且車廂只能停留在鐵軌上,所以不能隨心所欲的調整相對順序 現在只能利用兩條並行的鐵軌對車廂的順序進行調整 例如原序列為1,2的車廂 車廂1進入...
今日頭條2018 筆試題2
定義兩個字串變數 s,m,再定義兩種操作,第一種操作 m ss s s 說明 s只會變為原來的2倍 第二中操作 s s m 假設s,m初始化如下 s a m s求最小的操作步驟數,可以將s拼接到長度等於n。示例1 輸入6,輸出3 示例2 輸入4,輸出2 思路 第一種操作,s變為原來的1倍 說明偶數的...
2017 08 22 今日頭條筆試題
有乙個值得分享的地方,是x排序之後對應y的問題 我用了乙個很大的陣列,以x為索引,y為陣列值,不需要用到map。其實也是因為我懶不想去學map操作了,下次試試用map。include include include using namespace std int main cin n x.clear...