573. Squirrel Simulation

这是leetcode weekly contest31的第三题

松鼠模拟。松鼠收集所有松果到松树底下,每次只能拿一个松果。这题想通了就是一道送分题,没想通就是做不出。我一开始想的是,也许应该用DFS遍历所有拿松果的顺序。wack说用O(N)就行。看了答案之后才发现原来只有第一次去拿松果是特殊情况。如果把松树的原点设在松树底下,那不管怎么拿松果,要走的Distance都是一样的。所以minDistance就在于第一次松鼠先去拿哪一个松果。

代码:

    public int minDistance(int height, int width, int[] tree, int[] squirrel, int[][] nuts) {
        int sum = 0;
        int extra = Integer.MAX_VALUE;
        for (int i = 0; i < nuts.length; i++) {
            int nut2tree = dist(nuts[i], tree);
            int nut2squirrel = dist(nuts[i], squirrel);
            sum += nut2tree ;
            extra = Math.min(extra, nut2squirrel - nut2tree);
        }
        return sum * 2 + extra;
    }


    private int dist(int[] a, int[] b) {
        return Math.abs(a[0] - b[0]) + Math.abs(a[1] - b[1]);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,187评论 2 36
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • 创作:2017级1班 编辑:李照兴 单位:山东省泰安师范附属学校 时间:2017年12月13日 目录 1宝葫芦里的...
    李兆兴诗歌教育阅读 5,384评论 0 0
  • 有二种人会有宏达一种是的构想对未来的美好期盼,一种是没有经验的人喜欢猜想,一种是有文化的人对于有文化的人叫构想或者...
    包腾飞阅读 1,454评论 0 1
  • 今天,搞定了 Anki 在 Chrome、iPhone、Kindle 各平台的制作卡片,算是做好了学英语的利器。 ...
    ITJason阅读 1,045评论 0 0

友情链接更多精彩内容