classSolution{public:intuniqueLetterString(string s){/* ...A...A...A...*/int n = s.size();vector<int>alpha(26,-1);vector<int>leftBound(n,-1);// 记录每个位置的左端点for(int i =0; i < n; i++){leftBound[i]= alpha[s[i]-'A'];alpha[s[i]-'A']= i;}std::fill(alpha.begin(), alpha.end(), n);vector<int>rightBound(n, n);// 记录每个位置的右端点for(int i = n -1; i >=0; i--){rightBound[i]= alpha[s[i]-'A'];alpha[s[i]-'A']= i;}int ret =0;for(int i =0; i < n; i++){ret +=(i - leftBound[i])*(rightBound[i]- i);}return ret;}};
线性回归
线性回归基于几个简单的假设: 首先,假设自变量 x \mathbf{x} x和因变量 y y y之间的关系是线性的, 即 y y y可以表示为 x \mathbf{x} x中元素的加权和,这里通常允许包含观测值的一些噪声; 其次,我…
FFT 多项式多项式乘法复数及运算导数泰勒公式及展开式欧拉公式单位根 FFTCode IFFT 多项式
我们从课本中可以知道,一个 n − 1 n-1 n−1 次的多项式可以写成 a 0 a 1 x a 2 x 2 a 3 x 3 ⋯ a n − 1 x n − 1 a_{0}a_{1}xa_{2}x^2a_{3}x^3\dotsa_{n-1}x^{n-…