今日頭條筆試題

第一題

題面【深搜缀踪,搜索有多少個(gè)連通區(qū)域】:

世界杯球場(chǎng)专缠,能容納M*N個(gè)球迷瘪板。官方想統(tǒng)計(jì)觀眾中有多少個(gè)球隊(duì)的球迷群體鹅龄,最大的群體人數(shù)是多少揩慕?

球迷群體選座有以下特征:

  • 同球隊(duì)球迷會(huì)選擇相鄰座位,不同球隊(duì)會(huì)選擇不相鄰的座位扮休。(注解:相鄰包括前后左右迎卤、斜對(duì)角相鄰,即8個(gè)搜索方向)玷坠;
  • 在M*N個(gè)數(shù)中蜗搔,0代表沒人,1代表有人八堡;
輸入:
10,10
0,0,0,0,0,0,0,0,0,0
0,0,0,1,1,0,1,0,0,0
0,1,0,0,0,0,0,1,0,1
1,0,0,0,0,0,0,0,1,1
0,0,0,1,1,1,0,0,0,1
0,0,0,0,0,0,1,0,1,1
0,1,1,0,0,0,0,0,0,0
0,0,0,1,0,1,0,0,0,0
0,0,1,0,0,1,0,0,0,0
0,1,0,0,0,0,0,0,0,0
輸出:
6, 8
代碼:
#include <iostream>
#include <string.h>
#include <algorithm>

#define CLEAR(name, init) memset(name, init, sizeof(name));
const int MAXN = (int) 1e3 + 5;
using namespace std;

int n, m;
int maxSize;
bool square[MAXN][MAXN];
bool vis[MAXN][MAXN];
int size;
int dir[8][2] = {{-1, 0},
                 {-1, 1},
                 {-1, -1},
                 {0,  1},
                 {0,  -1},
                 {1,  0},
                 {1,  1},
                 {1,  -1}};

void dfs(int x, int y, int depth) {
    if (x < 0 || y < 0 || x >= n || y >= m) return;
    if (vis[x][y] || !square[x][y]) return;
    vis[x][y] = true;
    size++;
    maxSize = max(size, maxSize);
    for (int i = 0; i < 8; i++) {
        dfs(x + dir[i][0], y + dir[i][1], depth + 1);
    }
}

int main() {
    while (~scanf("%d,%d", &n, &m)) {
        CLEAR(vis, 0);
        maxSize = 0;
        for (int i = 0; i < n; i++) {
            char line[MAXN << 1];
            scanf("%s", line);
            for (int j = 0; line[j]; j++) {
                if (line[j] == ',') continue;
                if (line[j] == '0') {
                    square[i][j >> 1] = false;
                } else {
                    square[i][j >> 1] = true;
                }
            }
        }
        int cnt = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (!vis[i][j] && square[i][j]) {
                    size = 0;
                    cnt++;
                    dfs(i, j, size);
                }
            }
        }
        cout << cnt << ',' << maxSize << endl;
    }
    return 0;
}

第二題

題面【區(qū)間合并問題樟凄,不知道為什么只通過20%】:

有多個(gè)不同區(qū)間,區(qū)間之間可能存在重疊兄渺,求出合并后的區(qū)間斷不同。
輸入一個(gè)整數(shù)m,代表有m行輸入?yún)^(qū)間溶耘,每行包括數(shù)量不定的區(qū)間

這題得處理輸入數(shù)據(jù)二拐,因此用Python寫更方便一點(diǎn)

輸入:
3
1,10;32,45
78,94;5,16
80,100;200,220;16,32
輸出:
1,45;78,100;200,220
代碼:
# coding=utf-8
import sys

if __name__ == "__main__":
    m = int(sys.stdin.readline().strip())
    if m < 1:
        print(None)
    else:
        result = []
        for i in range(m):
            line = sys.stdin.readline().strip().split(';')
            for query in line:
                tmp = query.split(',')
                min_v = min(int(tmp[0]), int(tmp[1]))
                max_v = max(int(tmp[0]), int(tmp[1]))
                result.append((min_v, max_v))
        result.sort()
        # print(result)
        merge = []
        current = [result[0][0], result[0][1]]
        for i in range(1, len(result)):
            if current[0] <= result[i][0] <= current[1]:
                if result[i][1] > current[1]:
                    current[1] = result[i][1]
            else:
                merge.append((current[0], current[1]))
                current[0] = result[i][0]
                current[1] = result[i][1]
        merge.append((current[0], current[1]))
        print(merge)

第三題

應(yīng)該是背包問題

第四題

不太會(huì)

第五題

題面【貪心活動(dòng)安排問題】:
  • 輸入一個(gè)n,代表有幾個(gè)直播節(jié)目凳兵;
  • 輸入一個(gè)m百新,代表每天有幾個(gè)小時(shí);【即現(xiàn)在每天不是24小時(shí)庐扫,而是m小時(shí)】
  • 輸入每個(gè)直播的起始時(shí)間饭望、結(jié)束時(shí)間仗哨;
有兩點(diǎn)注意事項(xiàng)
  1. 首先要對(duì)數(shù)據(jù)中主播開始時(shí)間大于結(jié)束時(shí)間的數(shù)據(jù)進(jìn)行處理(即處理跨天數(shù)據(jù)),將跨天數(shù)據(jù)的結(jié)束時(shí)間加上m铅辞;
  2. 注意題目中描述的“一天”時(shí)間的范圍厌漂,是從選擇的第一個(gè)活動(dòng)的起始時(shí)間算起,比如第一個(gè)直播開始時(shí)間是3點(diǎn)斟珊,則題目中的一天指的是今天3點(diǎn)到明天3點(diǎn)苇倡,而不是今天0點(diǎn)到明天0點(diǎn);
輸入:
3
10
0 3 3 7 7 0
輸出:
3
代碼:
#include <iostream>
#include <algorithm>

using namespace std;

struct activity {
    int si, ti;
} record[100001];

bool cmp(activity a, activity b) {
    return a.ti < b.ti;
}

int main() {
    int m, n;
    while (cin >> n >> m) {
        if (n < 1 || m < 2)
            cout << 0 << endl;
        else {
            for (int i = 0; i < n; ++i) {
                cin >> record[i].si >> record[i].ti;
                if (record[i].si > record[i].ti)
                    record[i].ti += m;
            }
            sort(record, record + n, cmp);
            int count = 1;
            int last = 0;
            int limit = record[last].si + m;
            for (int i = 1; i < n; i++) {
                if (record[i].si >= record[last].ti && record[i].ti <= limit) {
                    last = i;
                    count++;
                }
            }
            cout << count << endl;
        }
    }
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末囤踩,一起剝皮案震驚了整個(gè)濱河市旨椒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌堵漱,老刑警劉巖综慎,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異勤庐,居然都是意外死亡示惊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門愉镰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來米罚,“玉大人,你說我怎么就攤上這事岛杀。” “怎么了崭孤?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵类嗤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我辨宠,道長(zhǎng)遗锣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任嗤形,我火速辦了婚禮精偿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赋兵。我一直安慰自己笔咽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布霹期。 她就那樣靜靜地躺著叶组,像睡著了一般。 火紅的嫁衣襯著肌膚如雪历造。 梳的紋絲不亂的頭發(fā)上甩十,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天船庇,我揣著相機(jī)與錄音,去河邊找鬼侣监。 笑死鸭轮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的橄霉。 我是一名探鬼主播窃爷,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼酪劫!你這毒婦竟也來了吞鸭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤覆糟,失蹤者是張志新(化名)和其女友劉穎刻剥,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滩字,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡造虏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了麦箍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漓藕。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖挟裂,靈堂內(nèi)的尸體忽然破棺而出享钞,到底是詐尸還是另有隱情,我是刑警寧澤诀蓉,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布栗竖,位于F島的核電站,受9級(jí)特大地震影響渠啤,放射性物質(zhì)發(fā)生泄漏狐肢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一沥曹、第九天 我趴在偏房一處隱蔽的房頂上張望份名。 院中可真熱鬧,春花似錦妓美、人聲如沸僵腺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽想邦。三九已至,卻和暖如春委刘,著一層夾襖步出監(jiān)牢的瞬間丧没,已是汗流浹背鹰椒。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呕童,地道東北人漆际。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像夺饲,于是被迫代替她去往敵國和親奸汇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容