python返回列表中最大和第二大的元素

2021-10-09 15:12:57 字數 819 閱讀 4641

設計乙個函式返回傳入的列表中最大和第二大的元素的值。

測試輸入:[1,2,3,4,5,6]

預期輸出:(5,6)

測試輸入:[11,2,30,4,55,6]

預期輸出:(30,55)

要求不破壞原來的列表。

方法一:用max方法取出列表裡最大的乙個元素,同時刪除這個元素,再用max取一次,得到的就是第二大的元素。

**:

def

max2

(x):

m1 =

max(x)

#m1是最大元素

x2 = x.copy(

)#複製乙個列表,同時不破壞原來的列表

x2.remove(m1)

#把列表裡最大的元素刪除

m2 =

max(x2)

#再次取列表裡最大的元素,這時取到的就是列表裡第二大的元素

return m2,m1 #m1是第二大的值,m2是最大值

方法二:給列表用sort()方法排序,排序之後是公升序的結果,最後兩個元素即為最大和第二大的元素,但是要不破壞原來的列表,也將其copy乙份。

**:

def

max2

(x):

x2 = x.copy(

)#複製乙份,不破壞原來的列表

x2.sort(

)#從小到大排序

m1 = x2[-1

]#最後乙個元素最大

m2 = x2[-2

]#倒數第二個元素第二大

return m2,m1 #m1是第二大的值,m2是最大值

陣列中最大和子陣列

題目 輸入乙個整型陣列,資料元素有正數也有負數,求元素組合成連續子陣列之和最大的子陣列,要求時間複雜度為o n 例如 輸入的陣列為1,2,3,10,4,7,2,5,最大和的連續子陣列為3,10,4,7,2,其最大和為18。背景 本題最初為2005年浙江大學計算機系考研題的最後一道程式設計題,在200...

陣列中最大和的子陣列

題目 輸入乙個整型陣列,資料元素有正數也有負數,求元素組合成連續子陣列之和最大的子陣列,要求時間複雜度為o n 例如 輸入的陣列為1,2,3,10,4,7,2,5,最大和的連續子陣列為3,10,4,7,2,其最大和為18。背景 本題最初為2005年浙江大學計算機系考研題的最後一道程式設計題,在200...

求連續子陣列中最大和

思路 動態規劃 遍歷陣列,遇到負的和則放棄之前的結果,重新積累,這期間保留最大值 用max記錄最終返回的最大和,用curmax記錄累加值 對於數值中乙個數arr i 若其左邊的累加和非負,那麼加上arr i 判斷此時的curmax是否大於max,若大於此時的max,則用max記錄下來 functio...