今日头条编程题
第二题查询喜爱度,暴力只能过50%。
自己改进以后得方法如下,本地可以运行,但是提交以后一直报段错误,求大神指导错在哪。。
如果最大喜爱度为k,有n个用户,空间复杂度为O(k*n),是因为空间复杂度太大吗?
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { int n; cin >> n; vector<int>like(n+1, 0); for (int i = 1; i <= n; i++) cin >> like[i];//n个人 int maxlike = *max_element(like.begin(), like.end()); vector<vector<int>>vec(maxlike+1, vector<int>(n+1,0)); for (int i = 1; i <= n; i++) { for (int j = i; j <= n; j++) { vec[like[i]][j]++; } } int q; cin >> q; for (int i = 0; i < q; i++) { int l, r, k; cin >> l >> r >> k; cout << vec[k][r]-vec[k][l-1] << endl; } return 0; }