[每日一题] 2731. 移动机器人 (思维 + 前面元素所有差值求和)

news/2024/12/23 1:33:12/
class Solution {
public:// 这道题碰撞了,其实和不碰撞是一样的,因为// 碰撞之前,一个向左,一个向右,但是碰后,还是一个左,一个右,速度都没变int sumDistance(vector<int>& nums, string s, int d) {// 不考虑碰撞,每个机器人直接走for(int i = 0; i < s.size(); i ++) {if(s[i] == 'R') {nums[i] = nums[i] + d;}else {nums[i] = nums[i] - d;}}// 计算距离// 计算距离这里,如果用两个for去算,就会TLEsort(nums.begin(), nums.end());for(auto it : nums) cout << it << " ";cout << endl;long long ans = 0;long long sum = 0;const int mod = 1e9 + 7;/* 这个地方非常巧妙现在我要计算 nums[0] 到 nums[i] 中的所有的元素的差值实际上,就是每个元素与他前面所有的元素的差的和,那么对于第i个元素则有(nums[i] - nums[0]) + (nums[i] - nums[1]) + ..... + (nums[i] - nums[i - 1])通过数学变换则有:i * nums[i]  - (nums[0] + nums[1] + ...nums[i - 1])因此可以用sum来迭代记录 nums[i - 1] 到 nums[0] 的值*/ for (int i = 0; i < nums.size(); ++i) {ans = (ans + i * (long long)nums[i] - sum) % mod;sum += nums[i];}return ans;}
};

http://www.ppmy.cn/news/1145312.html

相关文章

GEO生信数据挖掘(六)实践案例——四分类结核病基因数据预处理分析

前面五节&#xff0c;我们使用阿尔兹海默症数据做了一个数据预处理案例&#xff0c;包括如下内容&#xff1a; GEO生信数据挖掘&#xff08;一&#xff09;数据集下载和初步观察 GEO生信数据挖掘&#xff08;二&#xff09;下载基因芯片平台文件及注释 GEO生信数据挖掘&…

【LeetCode】——链式二叉树经典OJ题详解

主页点击直达&#xff1a;个人主页 我的小仓库&#xff1a;代码仓库 C语言偷着笑&#xff1a;C语言专栏 数据结构挨打小记&#xff1a;初阶数据结构专栏 Linux被操作记&#xff1a;Linux专栏 LeetCode刷题掉发记&#xff1a;LeetCode刷题 算法头疼记&#xff1a;算法专栏…

毕业设计项目选题Java高考志愿咨询平台 高考志愿填报助手系统源码+调试+开题+lw

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

prototype-based learning algorithm(原型学习)

Prototype-based learning&#xff08;原型学习&#xff09;是一种机器学习方法&#xff0c;它的核心思想是通过存储一组代表性的样本&#xff08;原型&#xff09;&#xff0c;然后使用这些原型来进行分类、回归或聚类等任务。这种方法模拟了人类学习的方式&#xff0c;人们往…

速通Redis基础(二):掌握Redis的哈希类型和命令

目录 Redis 哈希类型简介 Redis 哈希命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX ​编辑 HINCRBY HINCRBYFLOAT Redis的哈希类型命令小结 Redis 是一种高性能的键值存储数据库&#xff0c;支持多种数据类型&#xff0c;其中之…

嵌入式养成计划-33--数据库-sqlite3

七十一、 数据库 71.1 数据库基本概念 数据&#xff08;Data&#xff09; 能够输入计算机并能被计算机程序识别和处理的信息集合数据库 &#xff08;Database&#xff09;数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合 常用的数据库 大型数…

vue怎样封装接口

Vue可以使用axios来发送HTTP请求&#xff0c;通过封装axios可以实现接口的统一管理和调用。下面是一个简单的封装接口的示例。 安装axios 在项目中安装axios依赖&#xff0c;可以使用npm或者yarn命令进行安装。 npm install axios --save创建api.js文件 在项目中创建一个ap…

# 02 初识Verilog HDL

02 初识Verilog HDL ‍ 对于Verilog的语言的学习&#xff0c;我认为没必要一开始就从头到尾认真的学习这个语言&#xff0c;把这个语言所有细节都搞清楚也不现实&#xff0c;我们能够看懂当前FPGA的代码的程度就可以了&#xff0c;随着学习FPGA深度的增加&#xff0c;再不断的…