主要是理解一下做Leetcode时遇到的这种奇怪的加速方法。
同样的代码,直接执行是68ms,加速后是36ms,LeetCode1160
LeetCode581效果一样,不加48ms,加了32ms。
只需把代码加在开头
ios::sync_with_stdio(0);
cin.tie(0);
或者
static auto speedup = [](){
ios::sync_with_stdio(false); cin.tie(nullptr); return nullptr; }();
完整的例子
class Solution {
public:
int countCharacters(vector<string>& words, string chars){
int sum = 0;
unsigned int ch[26];
unsigned int tempCh[26];
memset(ch, 0, sizeof(ch));
for (char i : chars)
++ch[i - 'a'];
for (string i : words){
bool flag = true;
for (int i = 0; i < 26; ++i)
tempCh[i] = ch[i];
for (char c : i){
if (tempCh[c - 'a'] == 0){
flag = false;
break;
}
else
--tempCh[c - 'a'];
}
if (flag)
sum += i.length();
<