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 main

import "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 := 0
i := 0
j := N - 1
iRest := 0
jRest := 0
for i < j {
if iOnes[i]+iRest <= iOnes[j]+jRest {
total += iOnes[i] + iRest
iRest += iOnes[i]
i++
} else {
total += iOnes[j] + jRest
jRest += iOnes[j]
j--
}
}
i = 0
j = M - 1
iRest = 0
jRest = 0
for i < j {
if jOnes[i]+iRest <= jOnes[j]+jRest {
total += jOnes[i] + iRest
iRest += jOnes[i]
i++
} else {
total += jOnes[j] + jRest
jRest += jOnes[j]
j--
}
}
return total
}

执行结果如下:


左神java代码

2022-02-03:有一队人(两人或以上)想要在一个地方碰面,他们希望能够最小化他们的总行走距离。 给你一个 2D 网格,其中各个格子内的值要么是 0,要么是的更多相关文章

  1. RR区间锁 不是唯一索引,即使区间内没值,也锁

    +--------- +---------------------------------------------------------------------------------------- ...

  2. 2022.02.27 CF811E Vladik and Entertaining Flags

    2022.02.27 CF811E Vladik and Entertaining Flags https://www.luogu.com.cn/problem/CF811E Step 1 题意 在一 ...

  3. 2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集)

    2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集) https://www.luogu.com.cn/problem/CF811E Ste ...

  4. 2022.02.21 SA

    2022.02.21 SA 当我年少轻狂时,我曾拥有自由,但我并不明白它的意义.我曾拥有时间,但我没有意识到它的珍贵.我曾拥有爱,但我从未用心去体会.数十年的时间考验后,我终于理解了三者的真谛. 我已 ...

  5. Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值

    Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号 cxGrid1DB ...

  6. 用python实现了一下:甲乙两人互猜数字(数理逻辑)

    今天在园子里看到博客:超难面试题:甲乙两人互猜数字(数理逻辑).然后琢磨了半天,写了个Python程序实现算法,我得出来的结果是1,6或1,8或35,42的组合, 不知道是否正确,请高人指点? 下面列 ...

  7. linux下实现两人、三人无序对话功能

    序:引子 对话功能实际上就是利用管道见得通信.最原始的是一方发另一方收,不能进项交互,发送方的代码如下: /*============================================ ...

  8. Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:整型数值类型

    ylbtech-Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:整型数值类型 1.返回顶部 1. 整型数值类型(C# 参考) 2019/10/22 “整型数值类型”是“简单类型”的 ...

  9. Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:值类型的功能

    ylbtech-Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:值类型的功能 1.返回顶部 1. 值类型(C# 参考) 2018/11/26 有两种值类型: 结构 枚举 值类型的主 ...

  10. C/C++编程笔记:C语言NULL值和数字 0 值区别及NULL详解

    在学习C语言的时候,我们常常会碰到C语言NULL值和数字 0 ,很多小伙伴搞不清楚他们之间的一个区别,今天我们就了解一下他们之间的区别,一起来看看吧! 先看下面一段代码输出什么: 输出<null ...

随机推荐

  1. 不同目录下npm run 报错

    不同目录下npm 报错sh: webpack: command not found npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno E ...

  2. django 批量提交

    https://www.cnblogs.com/lbzbky/articles/11792545.html

  3. zookeeper异常

    1. KeeperErrorCode = Unimplemented for /service 在使用curator时,对zk有版本匹配关系. Curator 2.**    <--->  ...

  4. Bootstarp5第二弹

    四.网格系统 网格系统根据设备屏幕尺寸大小分为6类: col-<!--任意屏幕--> col-sm-<!--平板 - 屏幕宽度等于或大于 576px.--> col-md-&l ...

  5. Linux & 标准C语言学习 <DAY2>

    vim文本编辑器:     可以直接在终端下采用纯键盘操作的一款文本编辑器,号称编辑器之神,可以二次升级.可以扩展     基础用法:         1.进入vim:             输入 ...

  6. 全网最详细中英文ChatGPT接口文档(四)30分钟快速入门ChatGPT——Models模型

    @ 目录 Models Overview 概述 GPT-4 Limited beta GPT-3.5 Feature-specific models 特定功能的模型 Finding the right ...

  7. IDEA配置JDK版本的地方, 适用于Compilation failed: internal java compiler error

    错误原因: 1. 编译版本不匹配 2.当前项目jdk版本不支持 解决方法 查看项目的jdk 查看工程的jdk 查看java编译器版本 讲这些改成自己需要的版本, 一般就可以解决编译版本出现的错误

  8. wsl 中 docker-compose 搭建 kafka 集群出现的外部访问错误

    在 wsl 中用 docker-compose 搭建了一台 zookeeper + 三台 broker 的 kafka 集群,使用的镜像是 bitnami/kafka,在按照镜像文档运行容器后,发现运 ...

  9. 3.HTTP协议

    HTTP协议 目录 HTTP协议 1.常见HTTP客户端 思考 1.网络协议为什么要分层? 2.www包含了哪些技术? 3.http请求/响应报文包含了哪些内容? 4.http特点有哪些? 2.代理的 ...

  10. 一次Feign使用的案例

    项目名称 projectName Maven架构 l  ProjectName-项目名称,项目父工程 projectName-api-提供给外部组件使用的接口 common-一些基本共用的类.枚举常量 ...