当前位置: 首页 > news >正文

免费的网站搭建前端课程网站

免费的网站搭建,前端课程网站,网站源码下载音乐,个人主页网页模板html移动机器人【LC2731】 有一些机器人分布在一条无限长的数轴上,他们初始坐标用一个下标从 0 开始的整数数组 nums 表示。当你给机器人下达命令时,它们以每秒钟一单位的速度开始移动。 给你一个字符串 s ,每个字符按顺序分别表示每个机器人移动…

移动机器人【LC2731】

有一些机器人分布在一条无限长的数轴上,他们初始坐标用一个下标从 0 开始的整数数组 nums 表示。当你给机器人下达命令时,它们以每秒钟一单位的速度开始移动。

给你一个字符串 s ,每个字符按顺序分别表示每个机器人移动的方向。'L' 表示机器人往左或者数轴的负方向移动,'R' 表示机器人往右或者数轴的正方向移动。

当两个机器人相撞时,它们开始沿着原本相反的方向移动。

请你返回指令重复执行 d 秒后,所有机器人之间两两距离之和。由于答案可能很大,请你将答案对 109 + 7 取余后返回。

注意:

  • 对于坐标在 ij 的两个机器人,(i,j)(j,i) 视为相同的坐标对。也就是说,机器人视为无差别的。
  • 当机器人相撞时,它们 立即改变 它们的前进方向,这个过程不消耗任何时间。
  • 当两个机器人在同一时刻占据相同的位置时,就会相撞。
    • 例如,如果一个机器人位于位置 0 并往右移动,另一个机器人位于位置 2 并往左移动,下一秒,它们都将占据位置 1,并改变方向。再下一秒钟后,第一个机器人位于位置 0 并往左移动,而另一个机器人位于位置 2 并往右移动。
    • 例如,如果一个机器人位于位置 0 并往右移动,另一个机器人位于位置 1 并往左移动,下一秒,第一个机器人位于位置 0 并往左行驶,而另一个机器人位于位置 1 并往右移动。
  • 思路

    • 两个相同位置的机器人发生碰撞后,同时改变方向,相当于没有变化发生,可以近似为穿透,即每个机器人按照初始方向前进d个距离

    • 将机器人的最终位置进行排序后,计算所有机器人之间两两距离之和
      ( n u m s [ i ] − n u m s [ i − 1 ] ) + . . . + ( n u m s [ i ] − n u m s [ 0 ] ) = i ∗ n u m s [ i ] − ( n u m s [ 0 ] + . . . + n u m s [ i − 1 ] ) (nums[i]-nums[i-1]) + ... + (nums[i]-nums[0]) = i * nums[i] - (nums[0] + ... +nums[i-1]) (nums[i]nums[i1])+...+(nums[i]nums[0])=inums[i](nums[0]+...+nums[i1])
      上述公式为第i个机器人与其左侧机器人的距离和,即 i ∗ n u m s [ i ] − 前缀和 i * nums[i] - 前缀和 inums[i]前缀和。从第0个机器人依次计算与其左侧机器人的距离和。

  • 实现

    class Solution {public static final int MOD = (int)(1e9 + 7);public int sumDistance(int[] nums, String s, int d) {// 两个相同位置的机器人发生碰撞后,同时改变方向,相当于没有变化发生,可以近似为穿透,即每个机器人按照初始方向前进d个距离// 将机器人的最终位置进行排序后,计算所有机器人之间两两距离之和// (nums[i]-nums[i-1]) + ... + (nums[i]-nums[0]) = i * nums[i] - (nums[0] + ... +nums[i-1])// 上述公式为第i个机器人与其左侧机器人的距离和,即 i * nums[i] - 前缀和。从第0个机器人依次计算与其左侧机器人的距离和。int n = nums.length;long[] arr = new long[n];for (int i = 0; i < n; i++){arr[i] = (long)(nums[i] + (s.charAt(i) == 'R' ? d : -d));}Arrays.sort(arr);long res = 0L, sum = 0L;for (int i = 0; i < n; i++){res = (res + i * arr[i] - sum) % MOD;sum += arr[i];}return (int)res;}
    }
    
    • 复杂度
      • 时间复杂度: O ( n log ⁡ n ) \mathcal{O}(n \log n ) O(nlogn)
      • 空间复杂度: O ( n ) \mathcal{O}(n) O(n)
http://www.yayakq.cn/news/649210/

相关文章:

  • php mysql做网站登录建设网站的预期收益
  • 网站推广效益怎么分析网站建设的成本分析
  • 企业做定制网站的好处怎么做外国网站流量
  • 电影网站如何做seo江苏核酸检测机构
  • 自己做网站要买什么网络规划设计师考试资料百度云
  • 网站没有ftp 怎么推广php+mysql 2012也买酒商城网站源码
  • 沁阳建网站wordpress做x站主题
  • 长沙建设网站哪家好网站空间商 权限
  • 西部中大建设集团有限公司网站如何开公众号微信公众平台
  • 蕲春做网站重庆网站建设jccit
  • 网站建设的开发方式知乎公司网站要怎么做
  • 学做网站制作邮政招c1驾驶员8000元
  • 达州网站制作wordpress 计时
  • 上海正规做网站公司电话网站建设中提示页面下载
  • 建wiki网站这是我看过尺度最大的哔哩哔哩
  • 网站服务器错误怎么解决长沙外贸网站
  • 爱淘苗网站开发模式网站首页description标签
  • 高校建设人事处网站的意义建行app下载官网
  • wordpress页面如何设置新窗口打开百度seo优化推广公司
  • 网站如何建设目录结构新人如何自学做网站
  • 网站app用什么语言开发用ps怎么做网站背景
  • 百度网站推广申请网站建设收费明细
  • 如何给网站增加内链怎么建立个人网站
  • 网站备份查询网站制作一条龙全包
  • 网站技术支持什么意思深圳网站建设制作企业
  • 邢台网站建设包括哪些全国新闻
  • 漳州 网站建设公司哪家好韩国做游戏的电影 迅雷下载网站有哪些
  • 网站建设猪八戒高端网站开发哪家强
  • 网站开发前如何配置电脑各种购物网站大全
  • 白银市城乡建设局网站青岛建设公司网站费用