利用 %20 替换 空格
将字符串中的空格都替换为 %20 ( 时间复杂度为O(N)的解法 )
void ReplaceBlankSpace(char* arr) { if (arr) { int count = 0; int lenth = strlen(arr); for (int i = 0; i < lenth;++i) if (arr[i] == ' ') count++; char*before = arr+lenth, *behind = arr+lenth+2*count; while (before != behind) { if (*before != ' ') { *behind-- = *before--; } else { *behind-- = '0'; *behind-- = '2'; *behind-- = '%'; before--; } } } }
合并有序数组( 时间复杂为O(N),空间复杂度为O(1)的解法)
void ArrayMerage(vector<int>& Vector1, vector<int>& Vector2) { int index_1_before = Vector1.size() - 1, index_2 = Vector2.size() - 1; int sum = Vector1.size() + Vector2.size(); int index_1_behind = sum - 1; Vector1.resize(sum); while (index_2 >= 0 && index_1_before >= 0) Vector1[index_1_behind--] = Vector1[index_1_before] > Vector2[index_2] ? \ Vector1[index_1_before--] : Vector2[index_2--]; while (index_2 >= 0) Vector1[index_1_behind--] = Vector2[index_2--]; }