问题
给定一个数组,计算其中严格增加的子数的总数。
输入样本
[1, 2, 3, 1]
输出示例
3
解释
假设一个严格增加的子数组的端点是 start 和 end。那么,如果子数组 arr[start, end+1] 的元素是严格增加的,如果 end+1 的元素大于 end的元素 。
同样的道理也适用于在 end+1, end+2… 的元素也是如此,以此类推。
C++编程
#include <iostream>
using namespace std;
int solve(int arr[], int n)
{
int ans = 0;
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if (arr[j - 1] >= arr[j])
{
break;
}
ans++;
}
}
return ans;
}
int main()
{
int arr[] = { 1, 2, 3, 2 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << solve(arr, n);
return 0;
}
输出
3
C语言编程
#include <stdio.h>
int solve(int arr[], int n)
{
int ans = 0;
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if (arr[j - 1] >= arr[j])
{
break;
}
ans++;
}
}
return ans;
}
int main()
{
int arr[] = { 1, 2, 3, 2 };
int n = sizeof(arr) / sizeof(arr[0]);
printf("%d",solve(arr, n));
return 0;
}
输出
3
Python编程
def solve(arr):
ans = 0
for i in range(len(arr)):
for j in range(i + 1, len(arr)):
if arr[j - 1] >= arr[j]:
break
ans = ans + 1
return ans
arr = [1, 2, 3, 2]
print(solve(arr))
输出
3