四月份遇到的一些筆試題(回憶版一)

2021-07-02 02:43:31 字數 1078 閱讀 4873

1.已知a、b、m都在集合s中,且滿足a+b=m,求m得最大值,並分析演算法的複雜度

這道題的思路是這樣的,先對s進行排序,從小到大,然後從最大的元素m開始,設定兩個指標分別指向第乙個元素a和最大的元素減一的b,如果a+b=m,ok,最大的m找到了,如果a+bm,指向b的指標左移,如此迴圈,一直找不到的話,m就設為第二大的元素,繼續重複之前的步驟,直到找到最大的m,全部掃完找不到就返回-1,**如下:

int maxm(int a)

else}}

return -1;

}

2.求子陣列和最大的問題 

這道題目是程式設計之美上的經典題目,也是很多it公司常考的題目,思路就是分而治之,大問題化成小問題,**如下:

int maxshuzu(int a)

return all;

}

如上**時間複雜度為o(n),空間複雜度為o(1)

3.實現乙個函式,對乙個正整數n,算得到1需要的最少操作次數。操作規則為:如果n為偶數,將其除以2;如果n為奇數,可以加1或減1;一直處理下去.**如下:

int max1(int n)

if (n==1)

return 0;

if (n%2==0)

return 1+max1(n/2);

int x=max1(n+1);

int y=max1(n-1);

if (x>y)

return y+1;

else

return x+1;

}

4.回答:

一天總共有3600*24=86400秒。

定義乙個長度為86400的整數陣列intdelta[86400],每個整數對應這一秒的人數變化值,可能為正也可能為負。開始時將陣列元素都初始化為0。

然後依次讀入每個使用者的登入時間和退出時間,將與登入時間對應的整數值加1,將與退出時間對應的整數值減1。

這樣處理一遍後陣列中儲存了每秒中的人數變化情況。

四月份總結

這個月雖然還沒有結束,但早早的自己想寫下這篇總結,怎麼來說的,繁忙的自考算是過去,過程很煎熬,結果也不知道會不會給個微笑。這個月接下了集採那邊的專案,緊接著是熟悉了一段時間的 發現還是別人的 質量高,自己還是應該多加練習,老師說你想年薪過萬,你到畢業前就要敲一萬行 你想年薪過十萬,那麼 量也應該是十...

四月份總結

然後經知乎大佬牽線,幫別人優化一下lego loam演算法,雖然自己這段時間 都寫不出來,感覺要畢不了業了,但還是想逼自己一把。正如自己之前提到的,目前最缺的就是實戰。雖然畢設都夠我吃一大壺了,我還是接下了,想要把發呆的時間利用起來,也希望能在教別人的時候能和別人一起進步。剛開始上中國大學mooc上...

2023年三月份總結和四月份計畫

放假啦,放假啦,放假啦,重要的事情說三遍。今天青島的天氣很不錯,很適合外出郊遊,踏青啥的,想了想還是把重要的事情給辦了,小結與計畫 做完了總結在出去玩吧,嘿嘿。從哪個模組說起呢呢,想了想還是總結一下下列模組來梳理吧 閱讀,健身,戀愛進度,購物,生活感悟。一.閱讀 最高人民檢察院影視中心 江蘇省委宣傳...