Lintcode演算法練習 479 陣列第二大數

2021-10-04 22:36:52 字數 863 閱讀 3925

描述

在陣列中找到第二大的數。

注意:可以假定至少有兩個數字,第二大的數是指降序陣列中第二個數字。

樣例

example 1:

input: [1,3,2,4]

output: 3

example 2:

input: [1,1,2,2]

output: 2

思路

步驟

iii. 返回次大;

def

secondmax

(nums:

list):

# method 1

nums.sort(reverse =

true

)return nums[1]

# method 2

fmax,smax = nums[0]

,nums[1]

lens =

len(nums)

for i in

range(1

,lens)

:#數值大於最大值,需同時更新最大和次大

if nums[i]

>= fmax:

smax = fmax

fmax = nums[i]

#數值僅大於次大值,僅需更新次大

elif nums[i]

> smax:

smax = nums[i]

return smax

Lintcode演算法練習 110 最小路徑和

描述給定乙個只含非負整數的m n網格,找到一條從左上角到右下角的可以使數字和最小的路徑。樣例 example 1 input 1,3,1 1,5,1 4,2,1 output 7 example 2 input 1,3,2 output 6 思路利用動態規劃思想解決問題,動態規劃的思想是將乙個問題分...

lintcode練習 490 棧集

假如你有一堆的盤子。如果你堆得太高的話,就可能會垮掉。所以,在真實的生活中,如果盤子疊到一定高度,你會重新開始堆新的一堆盤子。實現這樣的乙個資料結構,我們稱之為棧集,來模擬這個過程。這個棧集包含若干個棧 可以理解為若干堆的盤子 如果乙個棧滿了,就需要新建乙個棧來裝新加入的項。你需要實現棧集的兩個方法...

lintcode練習 156 合併區間

給出若干閉合區間,合併所有重疊的部分。您在真實的面試中是否遇到過這個題?是 given intervals merged intervals 1,3 1,6 2,6 8,10 8,10 15,18 15,18 o n log n 的時間和 o 1 的額外空間。實現 思路 先對列表按照start進行排...