#400. 连续上升数列

连续上升数列
Background
Special for beginners, ^_^

Description
请判断

n 个数组成的一个数列,是否是一个严格递增数列。

Format
Input
第一行输入一个正整数

(
1
<


1000
)
n(1<n≤1000)。
第二行连续输入
n 个正整数,均在
int 型范围内。
Output
如果这
n 个数是严格递增的,输出 YES,否则输出 NO。
Samples
输入数据 1
5
1 2 5 10 11
输出数据 1
YES
Limitation
1s, 1024KiB for each test case.

下面函数可实现功能

bool pan(const std::vector<int>& nums) {  
    for (size_t i = 0; i < nums.size() - 1; ++i) {  
        if (nums[i] >= nums[i + 1]) {  
            return false;  
        }  
    }  
    return true;  
}


  • 只需遍历数组,只要在遍历没完成前,后一个数不大于前一个数,输出No。否则Yes。

  • 我仅会点Python,用python代码演示“算法”

    img


    img

#!/sur/bin/nve python
# coding: utf-8

def solution(in_s):
    n, lis = in_s.split('\n') # 按行拆分输入。
    lis = list(map(int, lis.split())) # 输入数列字符串转整型。
    
    for i in range(int(n)-2): # 遍历数组。

        if lis[i] >= lis[i+1]: # 后一个数不大于前一个数,返回No。
            return 'No'

    return 'Yes' # 完成遍历,返回Yes。


if __name__ == '__main__':
    in_s = '''5
1 2 5 10 12'''
    in_s2 = '''6
1 2 5 10 9 12'''
    print(f"\n输入:\n{in_s2}\n\n输出:\n{solution(in_s2)}")


【以下回答由 GPT 生成】

n = int(input()) # 输入数列的元素个数
numbers = list(map(int, input().split())) # 输入数列的元素

def is_increasing_sequence(n, numbers):
    for i in range(1, n):
        if numbers[i] <= numbers[i-1]:
            return "NO"
    return "YES"

result = is_increasing_sequence(n, numbers)
print(result)

解释: 首先根据题目要求,我们需要获取输入的数列的长度n和数列本身。然后,我们定义一个函数is_increasing_sequence来判断数列是否是连续递增数列。在函数实现中,我们使用一个循环遍历数列的每一个元素,通过比较每一个元素与前一个元素的大小关系,如果发现有任意一个元素小于等于前一个元素,则返回"NO",否则继续遍历。如果遍历完所有元素都没有发现不满足条件的情况,则返回"YES"。最后,我们根据函数的返回结果输出相应的结果。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^