小编gon*_*ang的帖子

计算数组中的不同切片

我试图解决这个问题.

给出了整数M和由N个非负整数组成的非空零索引数组A. 数组A中的所有整数都小于或等于M.

一对整数(P,Q),使得0≤P≤Q<N,称为阵列A的切片.切片由元素A [P],A [P + 1],...组成, A [Q].不同的切片是仅由唯一数字组成的切片.也就是说,切片中不会出现多个单独的数字.

例如,考虑整数M = 6和数组A,使得:

A[0] = 3
A[1] = 4
A[2] = 5
A[3] = 5
A[4] = 2 
Run Code Online (Sandbox Code Playgroud)

有九个不同的切片:(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)

c++ algorithm vector problem-steps-recorder

7
推荐指数
1
解决办法
830
查看次数

标签 统计

algorithm ×1

c++ ×1

problem-steps-recorder ×1

vector ×1