首页 > 其他分享 >【LC周赛391】3102. 最小化曼哈顿距离

【LC周赛391】3102. 最小化曼哈顿距离

时间:2024-04-03 23:33:24浏览次数:22  
标签:周赛 LC insert 曼哈顿 3102 int ans xs ys

题目描述

image

解析

一道很有意思的题目和一份写得很优雅的C++代码。
问题关键在于如何高效求解曼哈顿距离
借用一位大神的图:
image
因此有公式:曼哈顿距离=\(max(|x_1'-x_2'|, |y_1'-y_2'|)\),其中\(x'=x+y, y'=y-x\).【切比雪夫距离】
为方便求解数组中的最大值和最小值,使用multiset数据结构维护序列,该结构底层结构为红黑树,对插入删除具有\(O(logn)\)复杂度,且默认升序排序。

class Solution {
public:
    int minimumDistance(vector<vector<int>> &points) {
        multiset<int> xs, ys;
        for (auto &p : points) {
            xs.insert(p[0] + p[1]);
            ys.insert(p[1] - p[0]);
        }
        int ans = INT_MAX;
        for (auto &p : points) {
            int x = p[0] + p[1], y = p[1] - p[0];
            xs.erase(xs.find(x));
            ys.erase(ys.find(y));
            ans = min(ans, max(*xs.rbegin() - *xs.begin(), *ys.rbegin() - *ys.begin()));
            xs.insert(x);
            ys.insert(y);
        }
        return ans;
    }
};

作者:灵茶山艾府
链接:https://leetcode.cn/problems/minimize-manhattan-distances/solutions/2716755/tu-jie-man-ha-dun-ju-chi-heng-deng-shi-b-op84/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在集合中删除元素和取最大最小值的方法值得学习。

标签:周赛,LC,insert,曼哈顿,3102,int,ans,xs,ys
From: https://www.cnblogs.com/liu-yc/p/18113719

相关文章

  • dfs 序求 LCA!
    前言为什么用dfs序求LCA而不用欧拉序?帅常数小,也就一半好玩反正没什么正经理由。正文定义dfs序是指对树进行深度优先遍历后得到的节点序列。\(\mathit{dfn}_i\)是节点\(i\)在dfs序中的位置(从\(0\)或\(1\)开始无影响)。LCA是最近公共祖先。深度\(\ma......
  • dfs 序求 LCA!
    前言为什么用dfs序求LCA而不用欧拉序?帅常数小,也就一半好玩反正没什么正经理由。正文定义dfs序是指对树进行深度优先遍历后得到的节点序列。\(\mathit{dfn}_i\)是节点\(i\)在dfs序中的位置(从\(0\)或\(1\)开始无影响)。LCA是最近公共祖先。深度\(\ma......
  • 机器学习编译MLC
    陈天奇-《机器学习编译》课程主页:https://mlc.ai/summer22-zh课程笔记:https://mlc.ai/zh/机器学习编译概述1.1什么是机器学习编译机器学习编译(machinelearningcompilation,MLC)是指,将机器学习算法从开发阶段,通过变换和优化算法,使其变成部署状态。开发形式是指......
  • 使用LangChain SQLChain连接LLM和SQL数据库
    大家好,近年来大型语言模型(LLMs)因在多个领域的文本生成能力受到广泛关注。然而,LLMs有时会产生错误或生成无意义的文本,这种现象常被称为“幻觉”。例如,询问ChatGPT法国是什么时候赠送给立陶宛维尔纽斯电视塔的,ChatGPT可能错误地会回答“在1980年”,这与事实不符,因为法国与维尔纽斯......
  • Vlc.DotNet.Wpf,播放rtsp视频,
    Vlc.DotNet.Wpf,播放rtsp视频, 1.NuGet上下载Vlc.DotNet.Wpf,在https://github.com/ZeBobo5/Vlc.DotNet上下载的源码都是最新版本的,里面有调用的示例,每个版本调用方法都不一样。下面代码以2.2.1为例。安装完成后,程序中会自动引用相关dll 2.播放视频相关代码......
  • WPF中使用LibVLCSharp.WPF 播放rtsp
    目录LibVLCSharp.WPF简介vlc:VideoView基本使用安装LibVLC播放rtsp引入命名空间xaml代码cs代码截图概述代码示例vlc:VideoView进阶使用空域问题宽高比设置全屏问题拉伸问题响应鼠标点击事件播放其他类型多视频重叠画中画引用 LibVLCShar......
  • 工业级高抗干扰/抗噪VK2C24LCD液晶段码屏显示驱动IC适用于气表/热能表 原厂FAE支持
    VK2C24是一个点阵式存储映射的LCD驱动器,可支持最大288点(72SEGx4COM)或者最大544点(68SEGx8COM)或者最大960点(60SEGx16COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。L23+01特点:•......
  • PLC通过modbus转profinet网关连接湿度传感器操作步骤
    Modbus转Profinet网关可以连接不同系统和设备,有些现场需要实时监测环境参数,但大由于当时环境仪表设备不能达到直连效果,通过Modbus转Profinet网关,湿度传感器的数据可以被准确、可靠地传输到监控系统中,为生产运作提供全面的数据支持。  Modbus转Profinet网关接湿度传感器的操作......
  • K8S 安全监控-falco 二进制部署方式
    基本了解:Falco是一个Linux安全工具,它使用系统调用来保护和监控系统。Falco最初由Sysdig开发,后来加入CNCF孵化器,成为首个加入CNCF的运行时安全项目。Falco提供了一组默认规则,可以监控内核态的异常行为,例如:对于系统目录/etc,/usr/bin,/usr/sbin的读写行为。文件所有权、访问权......
  • 高抗干扰抗噪,段码LCD液晶低功耗驱动IC-VK2C23B,兼容市面上16C23
    VK2C23是一个点阵式存储映射的LCD驱动器,可支持最大224点(56SEGx4COM)或者最大416点(52SEGx8COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。L23+01特点:•工作电压2.4-5.5V•......