給你乙個整形陣列,找出這個陣列中第二個大的數。
比如說:num_list = [98,12,45,1,2,32,90,45,23,121,11]
第二大的數是98
方法1: 直接排序,輸出倒數第二個數即可
num_list = [98,12,45,1,2,32,90,45,23,121,11]
tmp_list = sorted(num_list)
print('第二大的數是:',tmp_list[-2])
方法2:
設定兩個標誌位乙個儲存最大數,乙個儲存次大數 two 儲存次大值,one 儲存最大值,遍歷一次陣列即可,先判斷是否大於 one,若大於將python**如下:one 的值給 two,將 num_list[i] 的值給 one,否則比較是否大於two,若大於直接將 num_list[i]
的值給two,否則pass
def find_second_large_num(num_list):
# 方法二
# 設定兩個標誌位乙個儲存最大數乙個儲存次大數
# two 儲存次大值,one 儲存最大值,遍歷一次陣列即可,先判斷是否大於 one,若大於將 one 的值給 two,將 num_list[i] 的值給 one,否則比較是否大於two,若大於直接將 num_list[i] 的值給two,否則pass
one = num_list[0]
two = num_list[0]
for i in range(1, len(num_list)):
if num_list[i] > one:
two = one
one = num_list[i]
elif num_list[i] > two:
two = num_list[i]
print("第二個大的數是 :", two)
num_list = [34, 11, 23, 56, 78, 0, 9, 12, 3, 7, 5]
find_second_large_num(num_list)
輸入結果:
第二個大的數是 : 56
找出乙個整數陣列中,第二大的數
寫乙個函式找出乙個整數陣列中第二大的數 include include include define size 10 intarray 隨機產生乙個大小為size的整數陣列 void createarray int array 列印整數陣列 void printarray int array pri...
寫乙個函式找出乙個整數陣列中第二大的數
如果是面試遇到這種型別的題,一定要多考慮一下了,畢竟題目不難,如果直接用排序去解題的話,面試官估計會比較失望了。因為這種型別的題,解法有很多,那麼別人當然是希望得到最高效的解法了。試想如果有一萬個數,如果用排序解答,是不是就浪費了大量的資源去將那些並不重要的數進行了排序。include void f...
寫乙個函式找出乙個整數陣列中,第二大的數
題目 寫乙個函式找出乙個整數陣列中,第二大的數。演算法分析 1 假設陣列中的前兩個元素就是最大和第二大,即max和smax 2 從陣列的第二個元素開始遍歷陣列,當有元素大於max的時候,將max賦值給smax,再將最大的那個元素賦值給max 3 如果當前元素小於max,並且大於smax,那麼就讓sm...