给定一个大小为 N 的数组 S,检查是否可以将序列拆分为两个序列
Given an array S of size N , check if it's possible to split sequence into two sequence
给定一个大小为N
的数组S
,检查是否可以将序列拆分为两个序列 -s1 to si
和si + 1 to sN
,使得第一个序列严格递减,第二个序列严格递增。
输入格式
第一行包含一个整数N
表示输入的大小。
接下来N
行包含一个整数,每个整数表示数组S
的元素。
约束0 < N < 1000
,序列中的每个数字S
> 0
和< 1000000000
输出格式
打印布尔输出 -"true"
或"false"
定义序列是否在增加 - 减少。
示例输入
5 1 2 3 4 5
示例输出
为 true
解释
仔细阅读条件以判断哪些序列都可能有效。不要使用数组或列表。
我的代码得分77.78/100
分,我无法找出错误,任何人都可以帮助我。
#include<iostream>
using namespace std;
int main() {
int n;
long long int p,c;
cin >> n;
cin >> p;
bool dec=true;
int a=0;
if (n<=0 || n==1) {
a=1;
}
for (int i=1;i<n;i++) {
cin >> c;
if (p==c) {
a=1;
}
else if (p<c) {
if (dec) {
dec=false;
}
else {
dec=false;
a=0;
}
}
else if (c > p) {
if (dec) {
a=0;
}
else {
a=1;
dec=false;
}
}
}
if(a==0){
cout<<"true";
}
else {
cout<<"false";
}
return 0;
}
我在某些测试用例上测试了您的代码,似乎您的代码失败了,
n = 2
1 1
它的答案应该是 True,因为它可以分为 {1}、{1},并且由于单个元素都在增加和减少两者,因此答案是正确的。
这是我的代码 解释:我的整个概念是基于我们需要检查给定的序列是否可以在 2 个子序列中完全被破坏。所以我保留了一个变量Seq_no来跟踪,所以如果在代码的末尾,如果Seq_no值不应该超过 2,也因为序列有可能完全严格减少,所以在这种情况下,如果 n 不等于 1,那么答案是正确的。
#include <iostream>
#include <limits.h>
using namespace std;
int main()
{
int n, curr, prev = INT_MAX, Seq_no = 1;
int i;
cin >> n;
for(i = 0; i < n; i++)
{
cin >> curr;
if(Seq_no == 1) // for stricly decreasing
{
if(prev <= curr)
{
Seq_no++;
}
}
else // for stricly decreasing
{
if(prev >= curr)
{
Seq_no++;
break;
}
}
prev = curr;
}
if(Seq_no == 2 || (Seq_no == 1 && n != 1))
cout << "truen";
else
cout << "falsen";
return 0;
}
如果我解决了您的问题,那么请接受答案。
相关文章:
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 是否可以在 OpenGL 中的同一调用中呈现两个具有不同索引起点的不同缓冲区?
- 检查两个节点在子节点上是否具有相同状态的更优雅的方法
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 使用XOR查找O(n)-解决方案中的两个字符串是否为变位符
- 给定一个大小为 N 的数组 S,检查是否可以将序列拆分为两个序列
- 具有相同特征的两个对象是否只在内存中存储一次?无论定义它们的函数是什么,都是不同的
- 如何更好地检查两个 char 变量是否在一组值中?
- 是否有一种标准方法来计算两个 asctime() 值之间的天数
- 是否可以使用非常量指针调用非常量函数,以及当两个unique_ptrs指向同一个对象时程序的行为方式?
- 检查两个模板参数是否相同
- 是否可以在 for 循环中添加两个浮点数?
- 是否允许三元运算符在C++中计算两个操作数?
- 使用 SET(C++) 检查两个给定字符串是否是字谜时出现运行时错误
- 使用 std::vector::swap 方法在C++中交换两个不同的向量是否安全?
- 检查两个向量是否并行的最有效方法
- 检查两个图是否为补码的功能
- gtest:检查字符串是否等于两个字符串之一
- 如何在c/c++中检查两个任意内存范围是否重叠
- 图问题:找出两个节点是否在每个节点的O(1)时间和O(2)存储中共享同一分支