美團 2020 年實習生招聘筆試題 最好一樣

2021-10-04 02:11:10 字數 1151 閱讀 5775

時間限制:c/c++語言 1000ms;其他語言 3000ms

記憶體限制:c/c++語言 131072kb;其他語言 655360kb

題目描述: 給出乙個序列包含 n 個正整數的序列 a,然後給出乙個正整數 x,你可以對序列進行任意次操作的,每次操作你可以選擇序列中的乙個數字,讓其與 x 做按位或運算。你的目的是讓這個序列中的眾數出現的次數最多。

請問眾數最多出現多少次。

輸入輸入第一行僅包含兩個正整數 n 和 x,表示給出的序列的長度和給定的正整數。(1<=n<=100000,1<=x<=1000)

接下來一行有 n 個正整數,即這個序列,中間用空格隔開。(1<=a_i<=1000)

輸出輸出僅包含乙個正整數,表示眾數最多出現的次數。

樣例輸入

523

1325

樣例輸出

3
提示

樣例解釋

例如如果序列中所有數字都不修改時,眾數為 3,3 出現的次數為 2,如果我們把1 都做如題操作,序列會變為 3,3,3,2,5,此時眾數為 3,出現次數為 3,所以我們選擇後者方案,輸出眾數出現的次數,即 3。

這道題看起來有點繞,但是想清楚之後就知道可以分為兩步解決這個問題:

**如下:

#include

#include

#include

using

namespace std;

intgetnum

(int a,

int n)

for(

auto i = mymap.

begin()

; i != mymap.

end(

); i ++)}

return maxnum;

}int

main()

for(

int i =

0; i < n; i ++

) cout <<

getnum

(a, n)

;return0;

}

求陣列中眾數及其出現次數的方法有很多,我之前習慣用乙個新陣列的索引表示原陣列的值,用新陣列的值表示對應索引的數字在原陣列**現的次數,但是這種方式存在明顯的缺點:

美團實習生筆試

n個學生參加考試,有m科。獲獎學生為某一科成績是最高的或者最高之一,問應該給多少學生頒發獎。輸入 第一行為n,m 接下來有n行,每行m個整數代表每一科成績 輸出 獲得獎的學生 首先考慮並列第一的情況 在輸入的時候就可以得到單科最高成績!當時這個想法一閃而過,就再沒有然後了,悔啊 採用set,值不重複...

2020阿里實習生招聘筆試題

小強有n個養雞場,第i個養雞場初始有a i 只小雞,小強的每個養雞場每天早上都會增加k只小雞,到了下午小強會把雞最多的雞場賣掉一半雞,那麼小強想知道m天後他所有養雞場一共有幾隻雞。第一行輸入三個正整數n,m,k 第二行輸入n個正整數a i 表示養雞場雞數量。1 n 100000,1 m 100000...

微軟實習生招聘筆試題目

微軟實習生招聘筆試題目 提交材料 1.不超過2頁的說明書,包括演算法,設計,使用說明,及程式編譯執行環境要求 2.c c 或c程式源 程式必須是可執行的 3.optional visual studio project 檔案,以及其他編譯必須檔案 4.請在截止時間11月30日 週日 前交卷 含週日當...