Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode 296. 最佳的碰头地点(坐标独立+中位数的地方最近)

LeetCode 296. 最佳的碰头地点(坐标独立+中位数的地方最近)

作者头像
Michael阿明
发布于 2021-02-19 02:08:21
发布于 2021-02-19 02:08:21
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

文章目录

1. 题目

有一队人(两人或以上)想要在一个地方碰面,他们希望能够最小化他们的总行走距离

给你一个 2D 网格,其中各个格子内的值要么是 0,要么是 1。

1 表示某个人的家所处的位置。这里,我们将使用 曼哈顿距离 来计算,其中 distance(p1, p2) = |p2.x - p1.x| + |p2.y - p1.y|

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例:
输入: 

1 - 0 - 0 - 0 - 1
|   |   |   |   |
0 - 0 - 0 - 0 - 0
|   |   |   |   |
0 - 0 - 1 - 0 - 0

输出: 6 
解析: 给定的三个人分别住在(0,0)(0,4)  (2,2):
     (0,2) 是一个最佳的碰面点,其总行走距离为 2 + 2 + 2 = 6,最小,因此返回 6

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/best-meeting-point 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 看的官方解答
  • 两个方向的坐标是独立的,独立考虑
  • 然后在中位数的点是总距离最近的
  • 按序搜集横纵坐标,双指针,两端点相减的距离累加
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
public:
    int minTotalDistance(vector<vector<int>>& grid) {
    	int m = grid.size(), n = grid[0].size(), i, j, dis = 0;
    	vector<int> x, y;
    	for(i = 0; i < m; ++i)
    		for(j = 0; j < n; ++j)
    			if(grid[i][j])
    				x.push_back(i);
		for(j = 0; j < n; ++j)
			for( i = 0; i < m; ++i)
				if(grid[i][j])
					y.push_back(j);
		i = 0, j = x.size()-1;
		while(i < j)
			dis += x[j--]-x[i++];
		i = 0, j = y.size()-1;
		while(i < j)
			dis += y[j--]-y[i++];
		return dis;
    }
};

8 ms 9.1 MB

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2022-02-03:有一队人(两人或以上)想要在一个地方碰面
1 表示某个人的家所处的位置。这里,我们将使用 曼哈顿距离 来计算,其中 distance(p1, p2) = |p2.x - p1.x| + |p2.y - p1.y|。
福大大架构师每日一题
2022/02/03
3250
LeetCode 1057. 校园自行车分配(map有序+贪心)
在由 2D 网格表示的校园里有 n 位工人(worker)和 m 辆自行车(bike),n <= m。所有工人和自行车的位置都用网格上的 2D 坐标表示。
Michael阿明
2021/02/19
8540
​LeetCode刷题实战612:平面上的最近距离
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2022/06/07
4350
​LeetCode刷题实战612:平面上的最近距离
LeetCode 1066. 校园自行车分配 II(状态压缩DP)
在由 2D 网格表示的校园里有 n 位工人(worker)和 m 辆自行车(bike),n <= m。所有工人和自行车的位置都用网格上的 2D 坐标表示。
Michael阿明
2021/02/19
8220
LeetCode 1162. 地图分析(BFS)
你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?
Michael阿明
2020/07/13
6420
LeetCode Weekly Contest 32解题思路
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/71948763
用户1147447
2019/05/26
4450
连连看
连连看游戏规则:只要将相同的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,适合细心的玩家。
DeROy
2020/07/23
9870
连连看
LeetCode MySQL 612. 平面上的最近距离
表 point_2d 保存了所有点(多于 2 个点)的坐标 (x,y) ,这些点在平面上两两不重合。
Michael阿明
2021/02/19
4430
P2154 [SDOI2009]虔诚的墓主人
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
用户2965768
2019/10/22
2770
层次遍历、四个方向遍历更新-LeetCode 429、892、542
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 例如,给定一个 3叉树 :
算法工程师之路
2019/11/14
4460
LeetCode 980. 不同路径 III(DFS+回溯)
返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目,每一个无障碍方格都要通过一次。
Michael阿明
2020/07/13
3560
LeetCode 980. 不同路径 III(DFS+回溯)
电信网络拓扑图自动布局之总线
在前面《电信网络拓扑图自动布局》一文中,我们大体介绍了 HT for Web 电信网络拓扑图自动布局的相关知识,但是都没有深入地描述各种自动布局的用法,我们今天在这边就重点介绍总线的具体实现方案。 在
HT for Web
2018/01/03
1.3K0
电信网络拓扑图自动布局之总线
洛谷P1742 最小圆覆盖(计算几何)
再枚举一个点\(j\),如果该点在圆内继续,否则用\(i, j\)构造出的圆替换出之前的圆。
attack
2019/03/04
6380
LeetCode 317. 离建筑物最近的距离(逆向BFS)*
你是个房地产开发商,想要选择一片空地 建一栋大楼。 你想把这栋大楼够造在一个距离周边设施都比较方便的地方,通过调研,你希望从它出发能在 最短的距离和 内抵达周边全部的建筑物。 请你计算出这个最佳的选址到周边全部建筑物的 最短距离和。
Michael阿明
2021/02/19
1.4K0
C#判断画的图形是不是三角形
这个源代码写的不是十全十美,只是提供一个 还待完善的地方例如判断是否这个图形是封闭的。得空在解决吧 这只是一个算法上 谁有c#的参考手册网盘分享一份 谢谢 下面请看源码 凑够150个字了,不废话了。 鼠标画图难免会有误差,所以需要容忍一定的误差 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6
拾点阳光
2018/05/10
1.2K0
2018 Wannafly summer camp Day2--New Game!
New Game! 描述 题目描述: Eagle Jump公司正在开发一款新的游戏。泷本一二三作为其员工,获得了提前试玩的机会。现在她正在试图通过一个迷宫。
Enterprise_
2019/02/20
3550
C++设计模式笔记(01)-设计模式的介绍
“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。                         ——克里斯托弗·亚历山大
Fista
2020/07/21
7090
C++设计模式笔记(01)-设计模式的介绍
HDUOJ--------(1198)Farm Irrigation
Farm Irrigation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4491    Accepted Submission(s): 1947 Problem Description Benny has a spacious farm land to irrigate. The farm land is a rectangle, and
Gxjun
2018/03/21
6490
golang刷leetcode:到达角落需要移除障碍物的最小数目
给你一个下标从 0 开始的二维整数数组 grid ,数组大小为 m x n 。每个单元格都是两个值之一:
golangLeetcode
2022/08/02
3490
【C++ 算法】DFS & BFS 一篇速成学习
DFS(Depth-First Search)是一种通过递归或显式栈结构实现的搜索算法,其核心思想是 “一条路走到黑,不撞南墙不回头”。它会沿着某条分支尽可能深入,直到无法继续时回溯到上一个分叉点
IsLand1314
2025/04/29
3570
推荐阅读
相关推荐
2022-02-03:有一队人(两人或以上)想要在一个地方碰面
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档