首页
/
每日頭條
/
職場
/
算法經典面試題
算法經典面試題
更新时间:2025-04-07 13:09:14
前言

動态規劃是面試中常考的知識點,特别是一些互聯網大廠的面試,可以說必會考到一道涉及動态規劃的算法題,因此掌握動态規劃,能提高面試的通過率。

本文的内容為通過一道騰訊的面試題,即力扣 152. 乘積最大子數組,由暴力法求解一步一步演化到由動态規劃進行求解來介紹動态規劃

題目

給你一個整數數組 nums ,請你找出數組中乘積最大的連續子數組(該子數組中至少包含一個數字),并返回該子數組所對應的乘積。

示例

算法經典面試題(手撕騰訊面試題)1

解題思路

注意點

本題要求的是乘積最大的連續子數組而不是乘積最大的子序列,因此要求子數組中的元素在原數組中是連續的

思考:整數數組可能存在的情況

由于題目已明确告知子數組中至少包含一個數字,因此主要存在以下兩種情況:

整數數組 nums 中隻包含一個元素;

整數數組 nums 中包含兩個或兩個以上元素。

思路

隻包含一個元素,直接返回該元素;

包含兩個或兩個以上元素,暴力輪詢或動态規劃求乘積最大的連續子數組,返回乘積。

暴力法

初看該題,很容易想到可以通過暴力法去求解,即通過兩層循環遍曆整個數組。

Show me the Code

C

算法經典面試題(手撕騰訊面試題)2

上面是通過暴力法去求解,由于進行了兩層遍曆,因此該解法的時間複雜度O(n^2),但由于未開辟額外的空間,所以空間複雜度O(1)。但在面試過程中,如果提供這種解法,面試官往往會問還有沒有更優的解法?也就是說面試官對當前的解法(時間複雜度過高)不太滿意。

那有沒有更優的解法呢?當然有!對動态規劃有所了解的童鞋,在看到題目中的最大兩個字,自然會想到通過動态規劃去求解,因為涉及到求最優的問題,往往可以通過動态規劃去解。

動态規劃

由于整數數組 nums 中的元素可能有正數、負數和 0,因此連續子數組中的元素也可能是這三種情況

如果連續子數組中的元素存在負數正數乘以負數就成負數,那麼最大值乘以負數就變成了最小值,因此需要同時考慮當前連續子數組乘積的最大值curMax最小值curMin

注意點

整數數組 nums 中存在負數,當遍曆到以nums[i](負數)結尾連續子數組時,需要交換 curMax 和 curMin

舉栗

以整數數組nums = [2, 3, -2, 4]為栗子,求乘積最大子數組的乘積。

如下圖示

算法經典面試題(手撕騰訊面試題)3

代碼示例:

C

算法經典面試題(手撕騰訊面試題)4

C語言

算法經典面試題(手撕騰訊面試題)5

采用動态規劃的方法去求解,由于隻進行了一層遍曆,因此其時間複雜度O(n),同樣由于未開辟額外的空間,所以空間複雜度O(1)

今天的分享就到這裡了,大家要好好學C 喲~

寫在最後:對于準備學習C/C 編程的小夥伴,如果你想更好的提升你的編程核心能力(内功)不妨從現在開始!

編程學習書籍分享:

算法經典面試題(手撕騰訊面試題)6

編程學習視頻分享:

算法經典面試題(手撕騰訊面試題)7

整理分享(多年學習的源碼、項目實戰視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比自己琢磨更快哦!

對于C/C 感興趣可以關注小編在後台私信我:【編程交流】一起來學習哦!可以領取一些C/C 的項目學習視頻資料哦!已經設置好了關鍵詞自動回複,自動領取就好了!

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
未成年能不能上班
未成年能不能上班
未成年能不能上班?第一,對于16歲以上18歲以下的未成年人是可以參加工作的,稱為“未成年工”也叫“青少年工”用人單位非法招用未滿十六周歲的未成年人的,由勞動行政部門責令改正,處以罰款;情節嚴重的,由工商行政管理部門吊銷營業執照,我來為大家科...
2025-04-07
求職被怼能力差怎麼怼回去
求職被怼能力差怎麼怼回去
如今的面試已經多種多樣,不再是中規中舉,想要一路過關斬将,自身的功底,必然要加深。要是碰到一些奇葩考官,問到一些奇葩面試題,那就隻能看現場反應能力了,誰現場反應能力好,誰就能給面試官留下加分一下。職場上好多類似的奇葩問題,比如:你能幫我倒一...
2025-04-07
單位交的社保辭職了怎麼辦
單位交的社保辭職了怎麼辦
單位交的社保辭職了怎麼辦?辭職後的社保是可以辦理轉移、轉出和退保的如果辭職後馬上找到新的單位工作的話,可以辦理轉移手續,由新單位續保,這樣的話,續保費用也是由新單位承擔,下面我們就來說一說關于單位交的社保辭職了怎麼辦?我們一起去了解并探讨一...
2025-04-07
新天龍八部手遊丐幫主要職業
新天龍八部手遊丐幫主要職業
如果要你提到哪個門派自身技能特點與定位反差最大,那你肯定會說丐幫了。我想說,怎麼想的人其實還沒有真正了解丐幫的能力。丐幫是個近戰外功,毒屬性的門派,丐幫最大的特點就是群傷技能很多,八個技能有七個群傷,可以稱為全天龍八部手遊中最強群傷。之所以...
2025-04-07
元宵節傳統祝福語
元宵節傳統祝福語
送戀人今兒,月亮好;今兒,元宵甜;今兒,攜手看華燈初上。明兒,工資高,明兒,房子大。明兒,相擁婚姻殿堂享錦繡未央。圓圓的湯圓包裹着甜蜜濃縮着思念,圓圓的月亮照耀着完美無缺的愛情,彩燈為證,我願陪你走過一年又一年!親愛的,元宵節快樂!戀一個美...
2025-04-07
Copyright 2023-2025 - www.tftnews.com All Rights Reserved