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

力扣1685. 有序数组中差绝对值之和

在这里插入图片描述
这一题主要是数学的推导,根据题目上需要求这个距离和推导出来前缀和。
题目上说result[i] 等于 sum(|nums[i]-nums[j]|)就是求一个点到其他点的距离和,
我们可以把式子展开也就是去绝对值,当求i前面的点的距离和时为

nums[i]-nums[0]+...nums[i]-nums[i]

当求i后面的点的距离和的时候时 取反 ,因为题目上说了递增

nums[i+1]-nums[i]...nums[n-1]-nums[i]

对式子进行移项+合并同类项

i+1*nums[i]-sum[i+1]+(sum[n]-sum[i+1])-nums[i]*(n-(i+1))

把相同的合并,其他的可以转化为前缀和
因此完整代码就出来了

int sum[100005];
vector<int> getSumAbsoluteDifferences(vector<int>& nums) {for(int i=0;i<nums.size();i++){sum[i+1]=sum[i]+nums[i];} vector<int> result;for(int i=0;i<nums.size();i++){result.push_back(((i+1)*nums[i]-sum[i+1])+(sum[nums.size()]-sum[i+1])-nums[i]*(nums.size()-i-1));}return result;}

时间复杂度O(n)
这一题主要就是数学推导和对前缀和的运用

http://www.dtcms.com/a/263153.html

相关文章:

  • Waiting for another flutter command to release the startup lock...解决方法
  • 【编译原理】期末简答题
  • ruv200 ext4文件系统调试总结
  • python包管理工具uv VS pip
  • 多重性校正:临床试验统计的关键防线
  • vue3 + luckysheet 实现在线编辑Excel
  • C 语言安装使用教程
  • 高效数据采集:Python与Rust完美结合
  • docker搭建minio和python使用minio
  • C++之AVL树的介绍以及AVL树自我实现
  • 计算机网络第一章——计算机网络体系结构
  • Junit_注解_枚举
  • K8S初始化master节点不成功kubelet.service failed(cgroup driver配置问题)
  • 基于vue+View UI的组织机构选择
  • 【计算机网络架构】总线型架构简介
  • 基于MATLAB的SVM支持向量机的乳腺癌分类方法应用
  • docker安装RabbitMQ,创建RabbitMQ容器
  • 选择排序算法详解
  • 云原生微服务架构搭建与部署全流程及样例
  • Blender设置物体绕轴环绕
  • 小白excel中使用VBA
  • Excel Report
  • 深度学习03 人工神经网络ANN
  • 07-three.js Debug UI
  • 商品类目一览
  • VBA代码解决方案第二十六讲:如何新建EXCEL工作簿文件
  • 【桶排序介绍】
  • 京东币链科技严正声明:澄清稳定币及合作虚假信息,暂未设立相关社区
  • 【Python基础】10 第三方库的力量:从数据处理到应用开发的全景实践
  • conda 常用指令