2023年面試題 數數問題

2021-10-22 03:16:25 字數 1636 閱讀 4033

該博文講述2023年美團春招原題,數數

題目描述:

小美正在統計她公司的資料。她想要知道一定時間段內的某種特徵。因此,她將n條資料按時間排好序依次給出,想要知道以某條資料開始的乙個連續資料段內資料的眾數情況。

形式化地,始出n個數a1…an分別表示時刻1,2…-.n的資料值。小美想要知道連讀x條資料的情況,即a… +k-1。請你求出當i=1,2.n-k+1時,al…3+k-1這些資料中的"眾數"。如果"眾數"有多個,輸出最小的那乙個.

注意,此處「眾數的定義與通常定義有些許區別。我們這樣定義「眾數」:如果出現次數最多的數只有乙個數,那麼「眾數」就是它:否則,眾數為出現次數最多的數中,數值最小的那乙個。

例如,序列[123 3]中,3出現了兩次,其他數僅出現了一次,所以「眾數為3.

序列[123]中,三個數出現次數都為1次,都是出現次數最多的數(不存在出現次數大於1的數),所以「眾數」是其中的數值最小的1.

序列[5252334]中.5、2、3均出現了2次,都是出現次數最多的數(不存在出現次數大於2的數),所以「眾數」是其中的數值最小的2。

輸入:n代表資料總數,k代表長度,vector存放輸入的若干個數

輸出:從i=0開始的n-k+1個資料。每個資料代表從i下標開始,該k個數的眾數

題目解析:

該題目的第乙個難點就是,題意生澀難懂,不容易將問題轉化。

實際上,問題就是,給若干個數,再給定乙個長度k,k滿足小於長度n,要求資料內從i=0開始向後k個資料的眾數,因此該組資料內共應有n-k+1個

如下圖,k給定後,相當於乙個滑動視窗,視窗向前滑動,對於這若干個資料,求裡面包含的眾數

題目解答:

該題解法很多,例如取出後排序,再尋找。但這些方法的時間複雜度和空間複雜度都無法保證,因此正解應當為動態規劃。

確定問題:求k個資料中的眾數

舉例幫助分析:arr=;n=6,k=3

尋找狀態關係:視窗長度為k時的眾數,等於視窗長度為k-1處的眾數和arr[k-1]數量加一的最大值,若相同則為arr[k-1]和k-1處眾數的最小值

動態轉移方程:dp(i,j)=max(mp[arr[j-1]], ++mp[arr[j]])。當二者不相等時.其中mp為記錄使用的雜湊表。

初始狀態,k=1時,dp[i][j]=arr[j]

記錄法記錄每個狀態。

注意:這裡的對於dp陣列的填充,必須滿足按行填寫,且保證每行填寫完成後將雜湊表清空

**:

vector<

int>

getnum

(vector<

int> vec,

int size,

int k)

}for

(int i =

0, j = k -

1; i < size - k +

1; i++

, j++

)return res;

}

前端面試題 2023年web前端開發面試題

本文章作為2021屆應屆畢業生在實習面試期間所接受的前端面試的面試題。css盒子模型的要素,css中常用偽元素選擇符 position屬性四個值 static fixed absolute和relative的區別和用法 解釋css樣式中display中inline block inline bloc...

2023年軟體測試常見的面試題

今天也依然愛你 很多人對軟體測試都有這樣一種認知 測試門檻低,通過幾個月的自學,或短期的培訓,就能找到高薪的工作。但是軟體測試,絕非簡單的 點點點 根據需求 編寫測試用例 是作為測試人員應該具備的基本能力。很遺憾,追求速成學習的人員,並不具備這樣的能力,不僅不會分析需求文件,連測試用例是什麼都不知道...

2023年前端校招面試題整理

1.解釋一下css的盒子模型?2.請你說說css選擇器的型別有哪些,並舉幾個例子說明其用法?3.請你說說css有什麼特殊性?優先順序 計算特殊值 4.要動態改變層中內容可以使用的方法?5.常見瀏覽器相容性問題與解決方案?6.列出display的值並說明他們的作用?7.如何居中div,如何居中乙個浮動...