2022-02-03:有一队人(两人或以上)想要在一个地方碰面,他们希望能够最小化他们的总行走距离。 给你一个 2D 网格,其中各个格子内的值要么是 0,要么是
2022-02-03:最佳的碰头地点。
有一队人(两人或以上)想要在一个地方碰面,他们希望能够最小化他们的总行走距离。
给你一个 2D 网格,其中各个格子内的值要么是 0,要么是 1。
1 表示某个人的家所处的位置。这里,我们将使用 曼哈顿距离 来计算,其中 distance(p1, p2) = |p2.x - p1.x| + |p2.y - p1.y|。
力扣296。
答案2022-02-03:
求行最优,求列最优。最优行和最优列确定一个点,这个点就是需要返回的值。
时间复杂度:O(N^2)。
空间复杂度:O(N)。
代码用golang编写。代码如下:
package mainimport "fmt"func main() {grid := [][]int{{1, 0, 0, 0, 1},{0, 0, 0, 0, 0},{0, 0, 1, 0, 0},}ret := minTotalDistance(grid)fmt.Println(ret)
}func minTotalDistance(grid [][]int) int {N := len(grid)M := len(grid[0])iOnes := make([]int, N)jOnes := make([]int, M)for i := 0; i < N; i++ {for j := 0; j < M; j++ {if grid[i][j] == 1 {iOnes[i]++jOnes[j]++}}}total := 0i := 0j := N - 1iRest := 0jRest := 0for i < j {if iOnes[i]+iRest <= iOnes[j]+jRest {total += iOnes[i] + iRestiRest += iOnes[i]i++} else {total += iOnes[j] + jRestjRest += iOnes[j]j--}}i = 0j = M - 1iRest = 0jRest = 0for i < j {if jOnes[i]+iRest <= jOnes[j]+jRest {total += jOnes[i] + iRestiRest += jOnes[i]i++} else {total += jOnes[j] + jRestjRest += jOnes[j]j--}}return total
}
执行结果如下:
左神java代码
2022-02-03:有一队人(两人或以上)想要在一个地方碰面,他们希望能够最小化他们的总行走距离。 给你一个 2D 网格,其中各个格子内的值要么是 0,要么是相关推荐
- 2023年 计算机考研 资料集(2022.02.03)
西南交通大学计算机考研--数据结构真题系列 西南交通大学计算机考研--数据结构真题系列_haimianjie2012的专栏-CSDN博客_西南交通大学计算机考研 西南交通大学计算机专业考研真题答案详解 ...
- 程序员面试金典:面试题 02.03. 删除中间节点
1. 题目 面试题 02.03. 删除中间节点 2. 描述 实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点. 示例: 输入: 单向链表 a->b-& ...
- python----根据字典内的值实现排序
""" 要求: 2020/11/1, 看了书本130之后的内容,发现还是不会,于是我搜了一篇优秀的博客 no1=dict(name1="余浩然",av ...
- 力扣-两数之和 (梦开始的地方)
力扣-两数之和(梦开始的地方) 来源:力扣网 https://leetcode.cn/problems/two-sum/ 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组 ...
- 某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件: 1)A和B两人中至少去一人; 2)A和D不能一起去; 3)A、E和F三人中要派两人去; 4)B和
某侦察队接到一项紧急任务,要求在A.B.C.D.E.F六个队员中尽可能多地挑若干人,但有以下限制条件: 1)A和B两人中至少去一人: 2)A和D不能一起去: 3)A.E和F三人中要派两人去: 4)B和 ...
- 计算机网络之浅谈移动互联网(3G-4G-5G与WEB1.0-2.0-3.0)
一.什么是移动互联网 ? 二.什么是3G网络 ? 三.什么是4G网络 ? 四.什么是5G网络 ? 五.移动互联网的发展 ? 补充.WEB1.0 - 2.0 - 3.0 ? 一.什么是移动互联网? ...
- 只能在公司代码XXX的期间 2022/03 和2022/02 中记账,MMPV打开物料账记账期间
在收货的时候报错:只能在公司代码XXX的期间 2022/03 和2022/02 中记账 说明:当前的时间与目前已开的记账期间不符. MMRV查看当前记账期间 以下截图只是示例,没有当时的截图 用MMP ...
- 2022年新能源汽车产业集群百人会
2022年新能源汽车产业集群百人会 3月25日-3月27日,2022年第八届中国电动汽车百人会(以下简称百人会)在线上举办.本届论坛以"迎接新能源汽车市场化发展新阶段"为主题. ...
- 《安富莱嵌入式周报》第254期:2022.02.21--2022.02.27
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- python修改列表中字典内的值_python修改字典内key对应值的方法
python学习笔记:字典 python版本:Python 2.6.6 系统环境:CentOS release 6.2 x86_64 本文参考了互联网上前辈的一些文章 一.字典是python中最灵活的 ...
最新文章
- Microbiome:植物根际微生物组也有昼夜节律
- PLSQL_SQL Loader的概念和用法(概念)
- VBS递归遍历文件夹
- 最常用的Eclipse快捷键
- 用springmvc作接口时返回json数据中文乱码
- 给新手程序员的一些建议
- Java生鲜电商平台-高并发核心技术订单与库存实战
- 清华计算机自主招生试题,2017年清华大学自主招生笔试题
- Git前世今生-版本控制软件的发展
- 移动前端开发之viewport的深入理解 --- 待续
- batchplot插件用法_Batchplot设置使用指南,实现批量打印CAD图纸
- 如何让自己每天按时睡觉
- PS学习总结一:入门版必备的基础功能
- js return加分号_js分号的重要性
- 向淘宝学运营:移动MM速长成
- iOS 限制输入框的字符长度
- 天地图覆盖物的添加,工具类的使用
- MapGuide概述与特点
- 单元测试的必要性?一文聊聊单元测试
- Django实现简单网页弹出警告
热门文章
- 互联网+机器人”碰撞出啥样火花? 华数机器人以大数据云平台为智能制造连接“大脑”...
- 考研常识:考研加分和照顾政策有哪些?
- 一线互联网互联网架构师自述:GitHub标星10w+,2021最新Android笔经
- Excel怎么合并两个或者多个单元格里面的内容
- python pandas按照行数切分文件
- 西部数据移动硬盘哪个型号好_西部数据移动硬盘怎么样(西数移动硬盘系列区别)...
- 【C语言】输出一个菱形
- easybcd 无法添加linux条目,easybcd无法添加条目怎么办-easybcd无法添加条目的解决办法...
- linux内核 精简 编译,精简LINUX内核配置及快速编译的方法收集
- 13 个 Python 必备的知识,建议收藏!