1598. 文件夹操作日志搜集器
![[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.dnimg.cn/e1b757dbbeSa4a9VflF180581e652cd1e0.pne875)(https://img-b#log.csdnimg.cn/e1b757dbbefa4a9180581e652cd1e0e5.png)]](https://i-blog.csdnimg.cn/blog_migrate/7b7efb61489d14b4794ada7d2b5e8d71.png)
代码实现(自解)
class Solution {
public:
int minOperations(vector<string>& logs) {
vector<string> dir;
for (string& log : logs) {
if (log == "./") continue;
if (log == "../") {
if (dir.empty()) continue;
dir.pop_back();
}
else {
int index = log.find_first_of('.');
string tmp = log.substr(0, index);
dir.push_back(tmp);
}
}
return dir.size();
}
};
797. 所有可能的路径

代码实现(自解)
class Solution {
public:
vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
int n = graph.size();
queue<pair<int, vector<int>>> myQueue;
vector<int> init;
init.push_back(0);
myQueue.push({0, init});
vector<vector<int>> ans;
while (myQueue.size()) {
auto [i, arr] = myQueue.front();
myQueue.pop();
for (auto j : graph[i]) {
vector<int> tmp = arr;
tmp.push_back(j);
if (j == n - 1) {
ans.push_back(tmp);
}
else {
myQueue.push({j, tmp});
}
}
}
return ans;
}
};
1054. 距离相等的条形码

代码实现(自解)
class Solution {
public:
vector<int> rearrangeBarcodes(vector<int>& barcodes) {
unordered_map<int, int> counts;
for (auto& code : barcodes) {
counts[code]++;
}
vector<int> ans;
priority_queue<pair<int, int>, vector<pair<int, int>>, less<>> pq;
for (auto it = counts.begin(); it != counts.end(); it++) {
pq.push({it->second, it->first});
}
while (pq.size()) {
auto [i, j] = pq.top();
pq.pop();
if (ans.size() && j == ans.back()) {
auto [i1, j1] = pq.top();
pq.pop();
pq.push({i, j});
ans.push_back(j1);
i1--;
if (!i1) continue;
pq.push({i1, j1});
continue;
}
ans.push_back(j);
i--;
if (!i) continue;
pq.push({i, j});
}
return ans;
}
};