[leetcode] 874. 行走机器人模拟(周赛)

874. 行走机器人模拟

模拟

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;
    }
}

原文地址:https://www.cnblogs.com/acbingo/p/9349541.html

时间: 2024-11-08 16:01:07

[leetcode] 874. 行走机器人模拟(周赛)的相关文章

leetcode 874 Robot Simulation

leetcode 874 Robot Simulation 限制:32MB, 1s 描述 A robot on an infinite grid starts at point (0, 0) and faces north. The robot can receive one of three possible types of commands: -2: turn left 90 degrees -1: turn right 90 degrees 1 <= x <= 9: move forw

OpenAI 开源机器人模拟 Python 库,并行模拟处理速度提升400%

10000da.cnvboyule.cnjiaeidaypt.cn 在过去一年的研究中,OpenAI团队开源一个使用 MuJoCoengine开发的用于机器人模拟的高性能Python库.雷锋网了解到, 该Python库是OpenAI团队深入学习机器人研究的核心工具之一,现在该团队发布的是作为MuJoCo的主要版本的mujoco-py(Python 3 的 MuJoCo 绑定). Mujoco-py 1.50.1.0带来了许多新的功能和显着的性能提升.雷锋网获悉,新功能包括以下几点: 高效处理并行

LeetCode874 模拟行走机器人(简单模拟—Java之HashSet简单应用)

题目: 机器人在一个无限大小的网格上行走,从点 (0, 0) 处开始出发,面向北方.该机器人可以接收以下三种类型的命令: -2:向左转 90 度-1:向右转 90 度1 <= x <= 9:向前移动 x 个单位长度在网格上有一些格子被视为障碍物. 第 i 个障碍物位于网格点  (obstacles[i][0], obstacles[i][1]) 如果机器人试图走到障碍物上方,那么它将停留在障碍物的前一个网格方块上,但仍然可以继续该路线的其余部分. 返回从原点到机器人的最大欧式距离的平方. 示例

LeetCode --- 字符串系列 --- 机器人能否返回原点

机器人能否返回原点 小注释:都说算法题刷的多了,越做越熟练,因为差不多都是那几个套路 今天碰到这个题目,有点感触.很快就解出来了,虽然是简单题. 做这题之前,遇到的是分割平衡字符串 有点类似,所以能很快解出下面这道题 题目 在二维平面上,有一个机器人从原点 (0, 0) 开始. 给出它的移动顺序,判断这个机器人在完成移动后是否在?(0, 0) 处结束. 移动顺序由字符串表示.字符 move[i] 表示其第 i 次移动. 机器人的有效动作有?R(右),L(左),U(上)和 D(下). 如果机器人在

LeetCode 6 ZigZag Conversion 模拟 难度:0

https://leetcode.com/problems/zigzag-conversion/ The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) P A H N A P L S I I G Y

LeetCode 1223. 掷骰子模拟 Dice Roll Simulation - Java - DP

题目链接:1223. 掷骰子模拟 有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数. 不过我们在使用它时有个约束,就是使得投掷骰子时,连续 掷出数字 i 的次数不能超过 rollMax[i](i 从 1 开始编号). 现在,给你一个整数数组 rollMax 和一个整数 n,请你来计算掷 n 次骰子可得到的不同点数序列的数量. 假如两个序列中至少存在一个元素不同,就认为这两个序列是不同的.由于答案可能很大,所以请返回 模 \(10^9 + 7\) 之后的结果. 示例1: 输入:n =

LeetCode Word Pattern (模拟)

题意: 给出一个模式串pattern,再给出一个串str,问str的模板是否是pattern. 思路: 注意点:只要对于所有pattern[i]相同的i,str中对应的所有words[i]也必须相同,反过来,一个words[i]对应的也只有一个pattern[i]. 乱搞: 1 class Solution { 2 public: 3 bool wordPattern(string pattern, string str) { 4 set<string> sett[26]; 5 map<

LeetCode 第 14 场双周赛

基础的 api 还是不够熟悉啊 5112. 十六进制魔术数字 class Solution { public: char *lltoa(long long num, char *str, int radix) { const char index[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; unsigned long long unum; int i = 0, j, k; if(radix == 10 && num <

[leetcode 周赛 157] 1217 玩筹码

1217 Play With Chips 玩筹码 题目描述 数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中. 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0. 将第 i 个筹码向左或者右移动 1 个单位,代价为 1. 最开始的时候,同一位置上也可能放着两个或者更多的筹码. 返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价. 示例 1: 输入:chips = [1,2,3] 输出:1 解释: