文章目录

  • 1. 题目
  • 2. 解题

1. 题目

现在有一棵树,一只松鼠和一些坚果。位置由二维网格的单元格表示。
你的目标是找到松鼠收集所有坚果的最小路程,且坚果是一颗接一颗地被放在树下。
松鼠一次最多只能携带一颗坚果,松鼠可以向上,向下,向左和向右四个方向移动到相邻的单元格。移动次数表示路程。

输入 1:输入:
高度 : 5
宽度 : 7
树的位置 : [2,2]
松鼠 : [4,4]
坚果 : [[3,0], [2,5]]
输出: 12

解释:
​​​​​

注意:
所有给定的位置不会重叠。
松鼠一次最多只能携带一颗坚果。
给定的坚果位置没有顺序。
高度和宽度是正整数。 3 <= 高度 * 宽度 <= 10,000。
给定的网格至少包含一颗坚果,唯一的一棵树和一只松鼠。

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

2. 解题

  • 所有的果子到树的距离*2,记为 sum
  • 现在松鼠挑选任意一个果子 i 开始捡,sum+dis(松鼠、i)-dis(树、i)记为从 i 开始捡的距离
  • 遍历所有的 i ,取出最小距离
class Solution {public:int minDistance(int height, int width, vector<int>& tree, vector<int>& squirrel, vector<vector<int>>& nuts) {int sum = 0, mindis = INT_MAX, i;for(i = 0; i < nuts.size(); ++i)sum += 2*dis(tree[0],tree[1],nuts[i][0],nuts[i][1]);for(i = 0; i < nuts.size(); ++i)mindis = min(mindis, sum-dis(tree[0],tree[1],nuts[i][0],nuts[i][1])+dis(squirrel[0],squirrel[1],nuts[i][0],nuts[i][1]));return mindis;}int dis(int a, int b, int c, int d){return abs(a-c)+abs(b-d);}
};

48 ms 19 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 573. 松鼠模拟(数学)*相关推荐

  1. leetcode 《简单》 数学部分 Python实现

    leetcode <简单> 数学部分 Python实现 ''' Fizz Buzz 写一个程序,输出从 1 到 n 数字的字符串表示.1. 如果 n 是3的倍数,输出"Fizz& ...

  2. 计算机中考在线评分模拟卡,TOP30广西南宁市2016届中考权威预测模拟数学试卷一解析版.doc文档免费在线阅读(模版2)...

    <广西南宁市2016届中考权威预测模拟数学试卷(一)(解析版).doc>由会员分享,可免费在线阅读全文,更多与<TOP30广西南宁市2016届中考权威预测模拟数学试卷(一)(解析版) ...

  3. 用英文单词模拟数字计算c语言,英文单词模拟数学运算问题

    英文单词模拟数学运算问题 大家帮忙看下,我严格按照标准输入,但是输出不了结果,还有开头那部分char dictionary[10][6]={"zero","one&quo ...

  4. ACM_模拟——数学问题

    目录 数学问题模拟 计算多边形面积(叉乘) C++中sin函数的用法 计算圆内接多边形边长 1.强迫症的lpl 2.喜欢斐波那契数的冰冰酱(斐波那契,同余定理) 3.喜欢膜法的菜菜K(__gcb(), ...

  5. 小明利用计算机软件绘制函数,2019年人大附中初二下期末模拟数学试题

    初二下数学期末模拟1姓名: 一.选择题(本题共30分,每小题3分) 在下列各题的四个备选答案中,只有一个 ....是正确的. 1.下列各点中,在直线y=2x上的点是() A.(1,1) B.(2,1) ...

  6. 2019春季高考计算机试题,2019春季高考模拟数学试题

    1.市2019年春季高考第二次模拟考试数学试题本试卷分第卷(选择题)和第卷(非选择题)两部分.满分120分,考试时间120分钟.第卷(选择题,共60分)注意事项:1答第卷前,考生务必将自己的姓名.准考 ...

  7. 蒙特卡罗模拟——数学的“蛮”与“巧”

    Mathematics is principally a tool to meditate,rather than to compute. 数学主要是一种思考的工具,而不是计算工具. 蒙特卡罗模拟是现 ...

  8. HDU1408 盐水的故事【模拟+数学】

    盐水的故事 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. LeetCode 319 灯泡开关[数学] HERODING的LeetCode之路

    解题思路: 这题本质就是数学,需要分析,每个灯泡会被翻转的时机正好是他的约数次遍历的时候,那么我们其实知道,对于每个数的约数都是成对出现的,除非是完全平方数,会有奇数个约数,所以,最后完全平方数的灯泡 ...

最新文章

  1. Flash Builder 4 安装ANT插件
  2. Oracle Golden Gate 系列十五 -- GG Trails 说明
  3. 深入理解C/C++二维数组
  4. 2.4 理解指数加权平均-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  5. mysql数据库的增删改查
  6. 【.NET Core项目实战-统一认证平台】第三章 网关篇-数据库存储配置(1)
  7. 看的一个pdf说的。。大型网站架构演变
  8. mysql降序后去重_Mysql 数据记录去重后按字段排序
  9. centos java 乱码_CentOS 7.4 java验证码乱码的问题
  10. python管理工具ports_采用python flask 开发如何管理 host port
  11. scrt 命令行的写法
  12. 通俗易懂的AI算法原理
  13. G003-186-18
  14. 电脑分区了如何恢复?电脑新手村教程
  15. Ural1671 Anansi's Cobweb 并查集
  16. MySQL8免安装版安装教程
  17. Symbian OS 精要
  18. 如何给微信公众号增加留言功能?
  19. java 生成uuid
  20. Access2003和Access2007数据库

热门文章

  1. 【Django】数据库主从配置
  2. LSI/LSA算法原理与实践Demo
  3. C++string类常用函数 c++中的string常用函数用法总结
  4. linux启用ipmi服务,使用 ipmitool 实现 Linux 系统下对服务器的 ipmi 管理
  5. 用mongo实现mysql视图_浅谈 MongoDB 的视图
  6. C中静态存储区和动态存储区
  7. 课外知识----浏览器存储技术
  8. 项目开发日志:Build AssetBundle——SpriteAtlas(已解惑)
  9. 腾讯云挂在和格式化数据盘
  10. CF 46D Parking Lot