zoukankan      html  css  js  c++  java
  • [leetcode] 874. 行走机器人模拟(周赛)

    874. 行走机器人模拟

    模拟

    描述方向时有个技巧:int[][] dx = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
    分别存储机器人向上、右、下、左走时,坐标应该如何变换

    class Solution {
        public int robotSim(int[] commands, int[][] obstacles) {
            int max = 0;
            int[][] dx = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
            int k = 0;
            Map<String, Boolean> map = new HashMap<>();
            for (int i = 0; i < obstacles.length; i++) {
                map.put(obstacles[i][0] + "," + obstacles[i][1], true);
            }
            int p = 0, q = 0;
            for (int command : commands) {
                if (command == -1) {
                    k = (k + 1) % 4;
                } else if (command == -2) {
                    k = (k + 4 - 1) % 4;
                } else {
                    int cur[] = dx[k];
                    for (int i = 0; i < command; i++) {
                        if (map.containsKey((p + cur[0]) + "," + (q + cur[1]))) {
                            break;
                        }
                        p += cur[0];
                        q += cur[1];
                    }
                    max = Math.max(max, p * p + q * q);
                }
            }
            return max;
        }
    }
    
  • 相关阅读:
    6.7
    6.5
    6.4随笔
    js 插件
    js插件
    web中集成jdbc
    jsp
    web容器中的servlet
    web服务器的监听器,过滤器
    几款js工具的使用
  • 原文地址:https://www.cnblogs.com/acbingo/p/9349541.html
Copyright © 2011-2022 走看看