归并
class Solution {
public:
vector<int> shuffle(vector<int>& nums, int n) {
vector<int> num;
for(int i=0;i<n;i++){
num.push_back(nums[i]);
num.push_back(nums[i+n]);
}
return num;
}
};
--------------------------------------------------------------------------------------------------------------------------------
就在原数组的后面加一个原数组
class Solution {
public:
vector<int> getConcatenation(vector<int>& nums) {
int n = nums.size();
for(int i = 0;i<n;i++)
nums.push_back(nums[i]);
return nums;
}
};
--------------------------------------------------------------------------------------------------------------------------------
照着题写
class Solution {
public:
vector<int> buildArray(vector<int>& nums) {
int n = nums.size();
vector<int> ans(n);
for(int i = 0;i<n;i++)
ans[i] = nums[nums[i]];
return ans;
}
};
--------------------------------------------------------------------------------------------------------------------------------
前缀和
class Solution {
public:
vector<int> runningSum(vector<int>& nums) {
int n = nums.size();
vector<int> ans(n);
ans[0] = nums[0];
for(int i = 1;i<n;i++) ans[i] = ans[i-1] + nums[i];
return ans;
}
};
--------------------------------------------------------------------------------------------------------------------------------
字符串处理
class Solution {
public:
string reverseLeftWords(string s, int n) {
reverse(s.begin(),s.begin() + n);
reverse(s.begin()+n,s.end());
reverse(s.begin(),s.end());
return s;
}
};
--------------------------------------------------------------------------------------------------------------------------------
字符串操作
class Solution {
public:
string defangIPaddr(string address) {
string res;
for(int i = 0;address[i];i++)
if(address[i] == '.') res += "[.]";
else res += address[i];
return res;
}
};
--------------------------------------------------------------------------------------------------------------------------------
一道有历史背景的题,在网址中间加空格,复制到别的地方,就能看到了hh
class Solution {
public:
string replaceSpace(string s) {
string res;
for(int i = 0;i<s.length();i++){
if(isblank(s[i])) res += "%20";
else res += s[i];
}
return res;
}
};
--------------------------------------------------------------------------------------------------------------------------------
排序加二分
class Solution {
public:
vector<int> smallerNumbersThanCurrent(vector<int>& nums) {
int n = nums.size();
vector<int> res = nums;
sort(res.begin(),res.end());
vector<int> ans;
for(int i = 0;i<n;i++){
int l = 0,r = n;
while(l < r){
int mid = (l + r) >> 1;
if(res[mid] >= nums[i]) r = mid;
else l = mid + 1;
}
ans.push_back(l);
}
return ans;
}
};
--------------------------------------------------------------------------------------------------------------------------------
大数情况不会,没考虑,会了再补
class Solution {
public:
vector<int> printNumbers(int n) {
vector<int> res;
int num = 1;
for(int i=0; i<n; ++i)
num *= 10;
for(int i=1; i<num; ++i) res.push_back(i);
return res;
}
};
--------------------------------------------------------------------------------------------------------------------------------
模拟
class Solution {
public:
vector<int> createTargetArray(vector<int>& nums, vector<int>& index) {
vector<int> res;
for(int i = 0;i<nums.size();i++)
res.insert(res.begin() + index[i], nums[i]);
return res;
}
};
--------------------------------------------------------------------------------------------------------------------------------