我试图解决这个问题.
给出了整数M和由N个非负整数组成的非空零索引数组A. 数组A中的所有整数都小于或等于M.
一对整数(P,Q),使得0≤P≤Q<N,称为阵列A的切片.切片由元素A [P],A [P + 1],...组成, A [Q].不同的切片是仅由唯一数字组成的切片.也就是说,切片中不会出现多个单独的数字.
例如,考虑整数M = 6和数组A,使得:
Run Code Online (Sandbox Code Playgroud)A[0] = 3 A[1] = 4 A[2] = 5 A[3] = 5 A[4] = 2
有九个不同的切片:(0,0),(0,1),(0,2),(1,1),(1,2),(2,2),(3,3),( 3,4)和(4,4).
目标是计算不同切片的数量.
提前致谢.
#include <algorithm>
#include <cstring>
#include <cmath>
#define MAX 100002
// you can write to stdout for debugging purposes, e.g.
// cout << "this is a debug message" << endl;
using namespace std;
bool check[MAX];
int solution(int M, vector<int> &A) {
memset(check, false, sizeof(check));
int base = …
Run Code Online (Sandbox Code Playgroud)