1. 題目來源
2. 題目說明
3. 題目解析
方法一:模擬+常規解法
也是一道水題…數據範圍決定了可以暴力模擬做。但是這題的意義又在哪呢…
直接開闢一個輔助數組,每次拿到待查數組的元素後在輔助數組中進行查找,再進行從後向前的簡單移位就解決了。很常規的一道題。
參見代碼如下:
// 執行用時 :36 ms, 在所有 C++ 提交中擊敗了100.00%的用戶
// 內存消耗 :8.6 MB, 在所有 C++ 提交中擊敗了100.00%的用戶
class Solution {
public:
vector<int> processQueries(vector<int>& q, int m) {
vector<int> vt;
int tmp[m + 1];
memset(tmp, 0, sizeof(tmp));
for (int i = 1; i < m + 1; ++i) tmp[i] = i;
for (int i = 0; i < q.size(); ++i) {
for (int j = 1; j < m + 1; ++j) {
if (q[i] == tmp[j]) {
vt.push_back(j - 1);
int str = tmp[j];
for (int k = j; k > 1; --k) tmp[k] = tmp[k - 1];
tmp[1] = str;
}
}
}
return vt;
}
};