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

【数据结构-距离合】力扣1685. 有序数组中差绝对值之和

给你一个 非递减 有序整数数组 nums 。

请你建立并返回一个整数数组 result,它跟 nums 长度相同,且result[i] 等于 nums[i] 与数组中所有其他元素差的绝对值之和。

换句话说, result[i] 等于 sum(|nums[i]-nums[j]|) ,其中 0 <= j < nums.length 且 j != i (下标从 0 开始)。

示例 1:
输入:nums = [2,3,5]
输出:[4,3,5]
解释:假设数组下标从 0 开始,那么
result[0] = |2-2| + |2-3| + |2-5| = 0 + 1 + 3 = 4,
result[1] = |3-2| + |3-3| + |3-5| = 1 + 0 + 2 = 3,
result[2] = |5-2| + |5-3| + |5-5| = 3 + 2 + 0 = 5。

示例 2:
输入:nums = [1,4,6,8,10]
输出:[24,15,13,15,21]
在这里插入图片描述

class Solution {
public:vector<int> getSumAbsoluteDifferences(vector<int>& nums) {int n = nums.size(),leftSum = 0,rightSum = accumulate(nums.begin(),nums.end(), 0);vector<int> result(n);for(int i = 0;i < n;i++){rightSum -= nums[i];result[i] = i * nums[i] - leftSum + rightSum - (n-1-i) * nums[i];leftSum += nums[i];}return result;}
};
对于i的左边:
nums[i]必然大于左边的所有元素,所以可以数出左边的元素个数,即i个
result[i] = (nums[i] - nums[0]) + (nums[i] - nums[1]) + ......+(nums[i] - nums[i - 1])
合并后就为:
result[i] = i * nums[i] - (nums[0] + nums[1] + ... + nums[i - 1])= i * nums[i] - leftsum

以上代码来源:
在这里插入图片描述

由于题目给的数组是非递减的,经过数学变化,可以得到每个元素和其他元素的绝对值之和与该元素以及左边元素和及右边元素和之间的关系,进行计算即可。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 前端宝典十:webpack性能优化最佳实践
  • JS逆向高阶补充
  • Eureka故障排查指南:常见问题与解决方案
  • java将list里的数据使用字符隔开并输出为一个String字符串
  • 网页版IntelliJ IDEA部署
  • 基于vue框架的班级网站的设计与实现vg66m(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 软件测试之常见逻辑思维题
  • 原生JS替换原有元素
  • 【机器学习】线性回归与逻辑回归的极致解析:从数学理论到实战案例
  • 2024年骨传导耳机强强pk:评测南卡、韶音、墨觉哪一款实力更强?
  • 《Linux运维实战:达梦DM8数据库(联机)物理备份之SQL方式归档备份与恢复》
  • python人工智能002:jupyter基本使用
  • Cesium实现单个无人机飞行
  • C++ std::bind
  • 为什么要用数字化营销管理平台?
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Android系统模拟器绘制实现概述
  • Angular 4.x 动态创建组件
  • JavaScript 基本功--面试宝典
  • Javascript设计模式学习之Observer(观察者)模式
  • js算法-归并排序(merge_sort)
  • Redis的resp协议
  • SpiderData 2019年2月13日 DApp数据排行榜
  • spring boot 整合mybatis 无法输出sql的问题
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 给第三方使用接口的 URL 签名实现
  • 关于extract.autodesk.io的一些说明
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 前端性能优化——回流与重绘
  • 收藏好这篇,别再只说“数据劫持”了
  • 跳前端坑前,先看看这个!!
  • 由插件封装引出的一丢丢思考
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​用户画像从0到100的构建思路
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #Ubuntu(修改root信息)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (强烈推荐)移动端音视频从零到上手(下)
  • (一)u-boot-nand.bin的下载
  • .a文件和.so文件
  • .bat批处理出现中文乱码的情况
  • .CSS-hover 的解释
  • .NET BackgroundWorker
  • .Net 代码性能 - (1)
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @DataRedisTest测试redis从未如此丝滑