字节青训营主题三-寻友之路

80 阅读2分钟

当青训营遇上码上掘金

主题三-寻友之路

小青要找小码去玩,他们的家在一条直线上,当前小青在地点 N ,小码在地点 K (0≤N , K≤100 000),并且小码在自己家原地不动等待小青。小青有两种交通方式可选:步行和公交。
步行:小青可以在一分钟内从任意节点 X 移动到节点 X-1 或 X+1
公交:小青可以在一分钟内从任意节点 X 移动到节点 2×X (公交不可以向后走)

请帮助小青通知小码,小青最快到达时间是多久?
输入: 两个整数 N 和 K
输出: 小青到小码家所需的最短时间(以分钟为单位)

解题思路

题目比较简单,思路也很简单暴力。通过查看题目要求其实可以得到一个很简单的解决思路,如果小青当前所处地点小于小码家所处地点可以采取做公交和步行两种方案。只需要坐公交后的 |2n - k| + 1 小于 k - n 即选择坐公交即可,否则的话选择步行。需要小心的是若是小青的起始位置大于小码的起始位置的话,也就是 n > k 的话只能选择步行。

结尾

非常感谢大家能够阅读完文章,希望文章能让大家有所收获。题主第一次尝试使用Go语言去解决编程问题,其中可能存在很多的问题,大佬们发现的话可以留言或评论,看到后第一时间就会修改。编程并非一日之事,需要日积月累的练习和不断的学习新知识。很高兴寒假能够参加字节青训营活动,希望能通过这次活动认识更多的编程爱好者,大家互相监督完成每日学习任务,共同学习一起进步。