KS23. 非递减序列
描述
输入描述
输入是一个长度为n的整数序列。输出描述
输出为; 是为1; 否为0示例1
输入:
3 4 6 5 5 7 8
输出:
1
说明:
将6变成4, 序列变成 [3 4 4 5 5 7 8],符合非递减序列,因此输出1示例2
输入:
3 4 6 5 4 7 8
输出:
0
C++ 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-06-17
#include <bits/stdc++.h> using namespace std; int main(){ int m; stack<int> v; int c=0; while(cin>>m){ if(v.empty()) v.push(m); else if(m<v.top()&&c==0) {//遇到第一个不满足条件的数 v.pop(); if(!v.empty()&&m<v.top()) { cout<<0<<endl; return 0; } else if(v.empty()){ v.push(m); v.push(m); } else { v.push(v.top()); v.push(m);} c++; } else if(m<v.top()&&c) { cout<<0<<endl; return 0; } else v.push(m); } cout<<1<<endl; return 0; }
C++ 解法, 执行用时: 3ms, 内存消耗: 404KB, 提交时间: 2022-01-15
#include <bits/stdc++.h> using namespace std; int main(){ int m; stack<int> v; int c=0; while(cin>>m){ if(v.empty()) v.push(m); else if(m<v.top()&&c==0) {//遇到第一个不满足条件的数 v.pop(); if(!v.empty()&&m<v.top()) { cout<<0<<endl;return 0; } else if(v.empty()){ v.push(m); v.push(m); } else { v.push(v.top()); v.push(m);} c++; }else if(m<v.top()&&c){ cout<<0<<endl; return 0; }else v.push(m); } cout<<1<<endl; return 0; }