C. Good String(暴力) 没想出 d p dp dp的做法,只知道暴力的做法。 题意:求成为周期为2的串要删除的最小字母数。 思路:暴力枚举第一个字母和第二个字母。 时间复杂度: O ( 100 n ) O(100n) O(100n) 如果此题换成小写字母就是 O ( 2 6 2 n ) O(26^2n) O(262n)。 貌似此种方法只能求...
window.push_back(nums[i]); cur_max =max( cur_max , window.back()); } ans.push_back(cur_max); // 窗口大小要是比数组size大,就不用滑动了 if( k >= nums.size()) { returnans; } // 从 k 位置开始滑动,前端出一个,后端进一个 for(inti = k; i < nums.size() ; i ++ ) { ...
3.1 时间复杂度 (Time Complexity) 3.2 空间复杂度 (Space Complexity) 3.3 栈的实际应用中的性能 (Performance in Practical Applications) 4. 进出栈顺序的可能性解析 (Analysis of Push and Pop Sequence) 4.1 合法的进出栈序列 (Valid Sequences) 4.2 不可能的进出栈序列 (Invalid Sequences) 5. C++中的栈...
(a);i<(b);i++) #define per(i,a,b) for(int i=(a);i>=(b);i--) #define pb push_back using namespace std; typedef long long ll; typedef pair<int,int> pii; void solve() { int k; string s; char a,b; cin>>k>>s>>a>>b; vector<int> vec; ll ans=0; repp(i,0,...
{cin>>n;vector<string>a;for(inti=1;i<=2*n-2;i++){strings;cin>>s;if(s.size()==n/2)a.push_back(s);}reverse(a[1].begin(),a[1].end());if(a[0]==a[1]){cout<<"YES\n";}else{cout<<"NO\n";}}intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intT;cin>>...
写了一个基础版本的快速排序算法,跟原生c库内置的qsort在一亿个随机整数的数组排序中,性能没相差太大...
int top = -1; // 使用std::vector实现的入栈操作 void push(int x) { stack.push_back(x); top++; } // 使用std::vector实现的出栈操作 int pop() { if (top == -1) { std::cout << "栈为空" << std::endl; return -1; } int val = stack[top]; stack.pop_back(); top--;...
时间复杂度:两者的插入、删除、查找操作的时间复杂度都是O(log n) 使用场景 1. 使用map的场景 需要通过键快速找到对应值的场景,例如: 记录学生学号与成绩的对应关系。存储配置项(键值对)。 例子: std::map<std::string, int> studentScores; studentScores["Alice"] = 90; // 插入 ...
进阶版(时间复杂度:O(1)):#include <stdio.h> int main() { for(int i = 0; i <...
1. 时间复杂度:O(NlogN) 2. 空间复杂度:O(N) 3. 稳定性:稳定(依赖于具体实现) 4. 缺点:辅助存储空间较多,和∞的比较多余。 为了弥补这些缺点,威洛姆斯(J·willioms)在1964年提出了另一种形式的选择排序——堆排序。 (4)标准锦标赛排序原理: ...