OJ练习第183题——移动机器人

移动机器人

力扣链接:2731. 移动机器人

题目描述


示例

官解思路

当两个机器人相撞时,它们会沿着原本相反的方向移动。由于机器人之间并没有任何区别,相撞可以看做是穿透 ,原本左边的机器人相撞后交换为右边的机器人,原本右边的机器人相撞后交换为左边的机器人,这样一来,两个机器人仿佛没有相撞过。因此,我们可以无视相撞 ,独立计算每个机器人 d 秒后所处的位置。

Java代码

java 复制代码
class Solution {
    static final int MOD = 1000000007;
    public int sumDistance(int[] nums, String s, int d) {
        int n = nums.length;
        long[] pos = new long[n];
        for(int i = 0; i < n; i++) {
            if(s.charAt(i) == 'L') {
                pos[i] = (long) nums[i] - d;
            }else {
                pos[i] = (long) nums[i] + d;
            }
        }
        Arrays.sort(pos);
        long res = 0;
        for(int i = 1; i < n; i++) {
            res += 1L * (pos[i] - pos[i - 1]) * i % MOD * (n - i) % MOD;
            res %= MOD;
        }
        return (int) res;
    }
}
相关推荐
kyle~几秒前
C++ --- noexcept关键字 明确函数不抛出任何异常
java·开发语言·c++
__万波__1 分钟前
二十三种设计模式(四)--原型模式
java·设计模式·原型模式
沐浴露z3 分钟前
详解Java ArrayList
java·开发语言·哈希算法
第二只羽毛4 分钟前
单例模式的初识
java·大数据·数据仓库·单例模式
4***g8945 分钟前
Java进阶-SpringCloud设计模式-工厂模式的设计与详解
java·spring cloud·设计模式
__万波__6 分钟前
二十三种设计模式(五)--建造者模式
java·设计模式·建造者模式
北郭guo6 分钟前
Java设计模式 【理论+代码实现】 让你从小白到大佬的蜕变
java·开发语言·设计模式
计算机徐师兄7 分钟前
Java基于微信小程序的贝壳活动助手【附源码、文档说明】
java·微信小程序·贝壳活动助手·贝壳活动助手小程序·贝壳活动助手微信小程序·java贝壳活动助手小程序·java贝壳活动助手微信小程序
Gavin在路上9 分钟前
架构设计之COLA架构
java·数据库·架构
MediaTea10 分钟前
Python 库手册:gc 垃圾回收
java·开发语言·jvm·python·算法