📅  最后修改于: 2023-12-03 15:37:14.734000             🧑  作者: Mango
这是一道程序设计题目,要求求出给定数组中所有子数组的最大值。
给定一个具有$n$个元素的实数数组$A$,你需要输出所有子数组的最大值。
第一行是一个正整数$T$,表示接下来有$T$组输入数据。
每组数据的第一行是一个正整数$n$,表示该组数据的数组长度。
接下来一行有$n$个整数,第$i$个整数表示数组的第$i$个元素$A_i$。
对于每组数据,按照输入的顺序输出每个子数组的最大值。
2
5
2 -3 5 -1 2
5
-1 2 -1 2 -1
2
5
5
5
5
2
2
2
解题思路是采用枚举法,从每个元素出发寻找可行解。时间复杂度为$O(n^2)$。
import sys
T = int(sys.stdin.readline())
for i in range(T):
n = int(sys.stdin.readline())
arr = list(map(int,sys.stdin.readline().split()))
for j in range(n):
max_val = float('-inf')
for k in range(j, n):
max_val = max(max_val, arr[k])
print(max_val)
返回markdown格式:
# 国际空间研究组织 | ISRO CS 2011 |问题 39
这是一道程序设计题目,要求求出给定数组中所有子数组的最大值。
## 题目描述
给定一个具有$n$个元素的实数数组$A$,你需要输出所有子数组的最大值。
## 输入格式
第一行是一个正整数$T$,表示接下来有$T$组输入数据。
每组数据的第一行是一个正整数$n$,表示该组数据的数组长度。
接下来一行有$n$个整数,第$i$个整数表示数组的第$i$个元素$A_i$。
## 输出格式
对于每组数据,按照输入的顺序输出每个子数组的最大值。
## 示例输入
2 5 2 -3 5 -1 2 5 -1 2 -1 2 -1
## 示例输出
2 5 5 5 5 2 2 2
## 思路分析
解题思路是采用枚举法,从每个元素出发寻找可行解。时间复杂度为O(n^2)。
## 代码实现
```python
import sys
T = int(sys.stdin.readline())
for i in range(T):
n = int(sys.stdin.readline())
arr = list(map(int,sys.stdin.readline().split()))
for j in range(n):
max_val = float('-inf')
for k in range(j, n):
max_val = max(max_val, arr[k])
print(max_val)