問題描述:
對於乙個長度為n的整數序列,你需要檢查這個序列是否可以是非遞減序列,假如你最多可以改變其中的乙個數。輸出描述:非遞減序列的定義是:array[i]<=array[i+1], for 1<=i輸入描述:
輸入是乙個長度為n的整數序列。
輸出為; 是為1; 否為0示例輸入:
示例輸出:346
5578
1
說明:
問題分析:將6變成4, 序列變成 [34
4557
8],符合非遞減序列,因此輸出1
本來這個題是有個小小的思考點在裡面的,但是這個說明真是個點睛之筆。。相當於直接告訴不符合條件的直接變成前面那個值即可。=ac**:=所以這題就成了完全沒有難度的題目了。 只需要遍歷一邊陣列,統計一下改變次數即可。
def
solution()
: cont =
0 arr =
list
(map
(lambda x:
int(x)
,input()
.split())
)for i,v in
enumerate
(arr):if
not i:
continue
if v < arr[i-1]
: cont +=
1 arr[i]
= arr[i-1]
if cont >1:
print(1
)else
:print(0
)
solution(
)
最長非遞減子串行的應用
description 我們有乙個數列a1,a2.an,你現在要求修改數量最少的元素,使得這個數列嚴格遞增。其中無論是修改前還是修改後,每個元素都必須是整數。請輸出最少需要修改多少個元素。input 第一行輸入乙個 t 1 leq t leq 10 表示有多少組資料 每一組資料 第一行輸入乙個 n ...
堆排序 大頂堆 非遞減序列
堆的定義 如下,n個元素的序列當且僅當滿足下關係時,稱之為堆.ki k2i ki k2i 1 小頂堆 或者 ki k2i ki k2i 1 大頂堆 堆排序 建大頂堆,使堆頂元素與堆中最後乙個元素替代之 放置陣列尾,陣列尾為當前最大元素 堆的剩餘未排序的元素,建大頂堆,重複上述過程.include 已...
hunnu 11182 最長非遞減子串行
xujie賣車 time limit 1000ms,special time limit 2500ms,memory limit 32768kb total submit users 1,accepted users 1 problem 11182 no special judgement prob...