获得徽章 0
- leetecode每日一题
1040. 移动石子直到连续 II
class Solution {
public:
vector<int> numMovesStonesII(vector<int>& stones) {
sort(stones.begin(), stones.end()); // 从小到大排序
int n = stones.size();
int max_steps = max(stones[n-2]-stones[0]+1, stones[n-1]-stones[1]+1) - (n-1); // 最大步数
int min_steps = n; // 最小步数
for (int i = 0, j = 0; i < n && j+1 < n; ++i) {
while (j+1 < n && stones[j+1]-stones[i]+1 <= n) { // 寻找能够放置所有石头的间隔
++j;
}
int curr_gap = j - i + 1; // 当前间隔的石头数
if (curr_gap == n-1 && stones[j]-stones[i]+1 == n-1) { // 特殊情况,所有石头都相邻
min_steps = min(min_steps, 2); // 最小步数等于2
} else {
min_steps = min(min_steps, n - curr_gap); // 最小步数等于未被覆盖的间隔数
}
}
return {min_steps, max_steps};
}
};展开评论点赞 - 【Day 3】现代前端工程为什么越来越离不开 Monorepo?
补充一下文章没有给出的缺点吧:
仓库变得庞大,代码库的检出和构建时间可能会变慢。
可能需要进行更复杂的CI/CD配置,以确保每个项目和模块都能够正确地构建和部署。
需要更好的工具支持,以便管理和查看不同项目和模块之间的依赖关系。展开评论点赞 - #新人报道# 【Day 1】我用 ChatGPT 读 Vue3 源码
看了一下,以前确实用 ChatGPT 辅助阅读代码,基本上没啥错误,现在看来还是得注意下,具体情况具体分析。评论点赞