360筆試18年程式設計題第四題

2021-09-26 04:49:11 字數 749 閱讀 2027

小明有乙個花園,花園裡面一共有m朵花,對於每一朵花,都是不一樣的,小明用1~m中的乙個整數表示每一朵花。

他很喜歡去看這些花,有一天他看了n次,並將n次他看花的種類是什麼按照時間順序記錄下來。

記錄用a[i]表示,表示第i次他看了a[i]這朵花。

小紅很好奇,她有q個問題,問[l,r]的時間內,小明一共看了多少朵不同的花兒,小明因為在忙著欣賞他的花兒,所以想請你幫他回答這些問題。

輸入:

輸入兩個數n,m;(1<=n<=2000,1<=m<=100);分別表示n次看花,m表示一共有m朵花兒。

接下來輸入n個數a[1]~a[n],a[i]表示第i次,小明看的花的種類;

輸入乙個數q(1<=q<=1000000);表示小紅的問題數量。

輸入q行 每行兩個數l,r(1<=l<=r<=n);表示小紅想知道在第l次到第r次,小明一共看了多少不同的花兒。

輸出:

一共q行

每一行輸出乙個數 表示小明在[l,r]的時間內看了多少種花。

例子:

輸入:

5 3

1 2 3 2 2

31 4

2 41 5

輸出:

3

23

思路:題目很複雜,但是簡化之後就是判斷列表的[l,r]區間中不同元素的個數。

python**如下:

但是牛客的通過率只有53.33%,感覺上是判斷字典中key是否存在也是乙個for迴圈,導致時間複雜度高了,沒有通過,如果有大牛有更好的解法,請指教!

360筆試 3 18 程式設計題

1.給乙個半徑為r的圓,圓心是 0,0 開始位於 r,0 分別求從始點順時針和逆時針走長度為l的終點座標 有可能走多圈,先處理成走一圈的形式,然後判是不是四個斷點,如果是則輸出 然後把l處理到第一象限,與x軸形成的夾角是l r,y點座標就是 那麼 includeusing namespace std...

筆試程式設計題 2012 3 22筆試

乙個筆試題目 n個人圍成乙個圈,第乙個人從1開始遞增報數,凡是報到3的倍數 包括3 時,該人退出,隨後的人接著再繼續報數,直到最後只剩下乙個人為止,求最後剩下的這個人在原對中的編號。思路 用陣列儲存n個人,開始陣列元素全部初始化為1,表示所有的人都在隊中,然後迴圈遍歷陣列,凡是遇到能整除3的位置的元...

360筆試真題2020 表面積

題目描述 將長n m厘公尺的矩形區域劃分成n行m列 每行每列的寬度均為1厘公尺 在第i行第j列的位置上疊放ai,j個邊長為1厘公尺的正方體 1 ai,j 100 所有正方體就組成了乙個立體圖形,每個正方體六個麵中的一部分會被其它正方體遮擋,未被遮擋的部分的總面積即為該立體圖形的表面積,那麼該立體圖形...