news 2026/3/30 14:18:35

前后缀预处理|二分

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前后缀预处理|二分

lc3488

前后各加一个哨兵 解决边界情况

hash分组后 二分query

class Solution {
public:
vector<int> solveQueries(vector<int>& nums, vector<int>& queries) {
unordered_map<int, vector<int>> indices;
for (int i = 0; i < nums.size(); i++)
indices[nums[i]].push_back(i);

int n = nums.size();
for (auto& [_, p] : indices) {
// 前后各加一个哨兵
int i0 = p[0];
p.insert(p.begin(), p.back() - n);
p.push_back(i0 + n);
}

for (int& i : queries) { // 注意这里是引用
auto& p = indices[nums[i]];
if (p.size() == 3) {
i = -1;
} else {
int j = ranges::lower_bound(p, i) - p.begin(); //找到此位置后 取最小
i = min(i - p[j - 1], p[j + 1] - i);
}
}
return queries;
}
};

前后缀 预处理记录 o n

class Solution {
public:
vector<int> solveQueries(vector<int>& nums, vector<int>& queries)

{
int n = nums.size();
vector<int> left(n), right(n);
unordered_map<int, int> pos;
for (int i = -n; i < n; i++) {
if (i >= 0) {
int j = pos[nums[i]];
left[i] = j;
// 对于左边的 j 来说,它的 right 就是 i
if (j >= 0) {
right[j] = i;
} else {
right[j + n] = i + n;
}
}
pos[nums[(i + n) % n]] = i;
}

for (int& i : queries) {
int l = left[i];
i = i - l == n ? -1 :min(i - l, right[i] - i);
}
return queries;
}
};

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/28 3:03:06

如何用OpCore Simplify智能工具高效构建黑苹果EFI配置

如何用OpCore Simplify智能工具高效构建黑苹果EFI配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify是一款开源智能工具&#xff0c…

作者头像 李华
网站建设 2026/3/29 19:54:45

解锁Obsidian插件本地化:探索多语言界面配置的创新方案

解锁Obsidian插件本地化&#xff1a;探索多语言界面配置的创新方案 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n Obsidian作为一款强大的知识管理工具&#xff0c;其丰富的插件生态极大扩展了功能边界。然而&#xff0c…

作者头像 李华
网站建设 2026/3/25 13:10:58

亲测unet person image cartoon compound镜像,效果惊艳的AI卡通生成体验

亲测unet person image cartoon compound镜像&#xff0c;效果惊艳的AI卡通生成体验 1. 开箱即用&#xff1a;从启动到第一张卡通图只要3分钟 第一次打开这个镜像时&#xff0c;我特意掐了表——从执行启动命令到看到网页界面&#xff0c;再到上传照片、调整参数、点击转换&a…

作者头像 李华
网站建设 2026/3/28 8:16:35

显存只有8GB也能行!麦橘超然让Flux模型轻松落地

显存只有8GB也能行&#xff01;麦橘超然让Flux模型轻松落地 1. 为什么8GB显存用户终于能用上Flux了&#xff1f; 你是不是也经历过这样的尴尬&#xff1a;看到Flux.1生成的图片惊艳得想立刻试试&#xff0c;结果一查显存要求——“推荐24GB VRAM”&#xff0c;默默关掉了网页…

作者头像 李华
网站建设 2026/3/24 21:30:00

YOLO26镜像避坑指南:从环境配置到模型训练全流程解析

YOLO26镜像避坑指南&#xff1a;从环境配置到模型训练全流程解析 在目标检测领域&#xff0c;YOLO系列始终以“快、准、稳”著称。随着技术演进&#xff0c;最新发布的 YOLO26 在架构设计和任务统一性上实现了进一步突破&#xff0c;不仅支持目标检测&#xff0c;还无缝集成实…

作者头像 李华
网站建设 2026/3/25 16:30:54

微信联系科哥获取支持:fft npainting lama使用答疑

微信联系科哥获取支持&#xff1a;fft npainting lama使用答疑 1. 快速上手图像修复系统 1.1 启动服务与访问界面 如果你已经部署了“fft npainting lama重绘修复图片移除图片物品 二次开发构建by科哥”这个镜像&#xff0c;接下来就可以快速启动并使用它来处理图像。整个过…

作者头像 李华