leetcode-zj-future03:快递中转站选址

简介: leetcode-zj-future03:快递中转站选址

题目

题目连接

某区域地图记录在 k 二维数组 area,其中 0 表示空地,1 表示快递分发点。

若希望选取一个地点设立中转站,使得中转站至各快递分发点的「曼哈顿距离」总和最小。请返回这个 最小 的距离总和。

注意:

  • 曼哈顿距离:distance(p1, p2) = |p2.x - p1.x| + |p2.y - p1.y|
  • 所有位置均可作为快递中转站的设立点。

示例 1:

输入: area = [[0,1,0,0,0],[0,0,0,0,1],[0,0,1,0,0]]
输出: 5 
解释: 三个快递分发点分别位于(0,1),(1,4) 和 (2,2):
     (1,2) 是最佳的中转站选址,总距离为 2 + 2 + 1 = 5。

示例 2:

输入: area = [[1,1],[1,1]]
输出: 4
解释: (0,0) 是最佳的中转站选址之一,总距离为 0 + 1 + 1 + 2 = 4。

解题

方法一:

由于是曼哈顿距离,其实可以可以化解二维为一维的问题

对于下图中,选取箭头所指的选为中转站,距离最短

class Solution {
public:
    int buildTransferStation(vector<vector<int>>& area) {
        vector<int> x;
        vector<int> y;
        for(int i=0;i<area.size();i++){
            for(int j=0;j<area[0].size();j++){
                if(area[i][j]==1){
                    x.push_back(i);
                    y.push_back(j);
                }
            }
        }
        sort(x.begin(),x.end());
        sort(y.begin(),y.end());
        int mid=x.size()/2;
        int res=0;
        for(int xi:x){
            res+=abs(xi-x[mid]);
        }
        for(int yi:y){
            res+=abs(yi-y[mid]);
        }
        return res;
    }
};
相关文章
|
传感器
STM32F407软件模拟I2C实现MPU6050通讯(CUBEIDE)(下)
STM32F407软件模拟I2C实现MPU6050通讯(CUBEIDE)(下)
1190 0
|
Python 机器学习/深度学习
Cross Entropy Loss 交叉熵损失函数公式推导
表达式 输出标签表示为{0,1}时,损失函数表达式为: $L = -[y log \hat{y} + (1-y)log(1- \hat{y})]$ 二分类 二分类问题,假设 y∈{0,1} 正例:$P(y = 1| x) = \hat{y}$ 反例:$P(y=0|x) = 1-\hat{y}$ 取似然函数 似然函数就是所有样本在参数θ下发生概率最大的那种情况,由于样本独立同分布,因此概率最大的情况就是每个样本发生概率的连乘。
16295 0
|
监控 安全 Cloud Native
容器安全的风险应对及 Twislock 容器安全方案| 学习笔记
快速学习容器安全的风险应对及 Twislock 容器安全方案。
容器安全的风险应对及 Twislock 容器安全方案| 学习笔记
Linux CentOS 平台安装 rar unrar 命令
Linux CentOS 平台安装 rar unrar 命令
1701 0
|
运维 Cloud Native 数据管理
云原生数据库:下一代数据管理的趋势与挑战
【9月更文挑战第4天】云原生数据库作为下一代数据管理的趋势,正以其独特的优势引领着数据管理领域的变革。然而,在快速发展的同时,云原生数据库也面临着诸多挑战。未来,随着技术的不断进步和市场的不断成熟,云原生数据库将不断优化和完善,为企业数字化转型提供更加高效、安全、灵活的数据管理服务。同时,我们也需要关注并解决其面临的挑战,推动云原生数据库技术的健康发展。
|
8月前
|
人工智能 自然语言处理 算法
接入DeepSeek需要做算法备案吗?一文读懂算法备案的那些事儿
在AI快速发展的今天,算法备案成为企业合规运营的关键。本文通过五个案例解析接入DeepSeek是否需备案:1) 微调模型需备案,流程4-6个月;2) 面向公众服务需备案;3) 内部使用通常无需备案;4) 个人自用无需备案;5) 面向特定专业人士通常无需备案。了解这些要求,确保企业在享受AI红利的同时合规运营,规避风险。
|
JSON API 数据格式
如何使用Flask request对象处理请求
在 Flask 中,request对象是处理 HTTP 请求的重要工具之一。它提供了许多属性和方法,可以帮助我们获取请求的相关信息和数据。本文将向你介绍request对象的常用方法以及如何在 Flask 应用程序中使用它。
356 3
|
10月前
|
Java 物联网 程序员
还在纠结抽象类和接口?看这篇就够了!
本文从一位程序员的角度出发,讲述了其小学弟在Java开发面试中遇到的难题——抽象类与接口的区别。文章不仅详细解析了两者的定义、特点及主要差异,还提供了实际开发中的应用场景和面试答题技巧,帮助读者更好地理解和应用这一重要知识点。
1511 12
|
机器学习/深度学习 数据采集 人工智能
深度学习在医疗健康领域的革新应用:从疾病预测到个性化治疗
【9月更文挑战第4天】深度学习在医疗健康领域的革新应用,为疾病的预防、诊断和治疗带来了全新的可能性。从疾病预测到个性化治疗,深度学习技术正在逐步改变医疗健康的未来。然而,我们也应看到,深度学习在医疗健康领域的应用还面临着诸多挑战,如数据隐私保护、算法可解释性、伦理道德问题等。未来,我们需要不断探索和创新,完善深度学习技术的理论体系和应用框架,为医疗健康行业的可持续发展贡献更多的智慧和力量。
|
11月前
|
安全 Docker 微服务
深入理解Docker容器技术:从基础到实践
深入理解Docker容器技术:从基础到实践