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

LeetCode 2535.数组元素和与数字和的绝对差:模拟

【LetMeFly】2535.数组元素和与数字和的绝对差:模拟

力扣题目链接:https://leetcode.cn/problems/difference-between-element-sum-and-digit-sum-of-an-array/

给你一个正整数数组 nums

  • 元素和nums 中的所有元素相加求和。
  • 数字和 是 nums 中每一个元素的每一数位(重复数位需多次求和)相加求和。

返回 元素和数字和 的绝对差。

注意:两个整数 xy 的绝对差定义为 |x - y|

 

示例 1:

输入:nums = [1,15,6,3]
输出:9
解释:
nums 的元素和是 1 + 15 + 6 + 3 = 25 。
nums 的数字和是 1 + 1 + 5 + 6 + 3 = 16 。
元素和与数字和的绝对差是 |25 - 16| = 9 。

示例 2:

输入:nums = [1,2,3,4]
输出:0
解释:
nums 的元素和是 1 + 2 + 3 + 4 = 10 。
nums 的数字和是 1 + 2 + 3 + 4 = 10 。
元素和与数字和的绝对差是 |10 - 10| = 0 。

 

提示:

  • 1 <= nums.length <= 2000
  • 1 <= nums[i] <= 2000

解题方法:模拟

写一个函数getSum(x)返回整数x在十进制下的每位之和:

int getSum(int x) {int ans = 0;while (x > 0) {ans += x % 10;x /= 10;}return ans;
}

使用两个变量xy分别记录元素之和和元素每一位之和,遍历一遍原始数组即可得到这个值。

最终,返回abs(x - y)即为答案。

  • 时间复杂度 O ( l e n ( n u m s ) × log ⁡ M ) O(len(nums)\times \log M) O(len(nums)×logM),其中 M M M n u m s [ i ] nums[i] nums[i]可取值范围的最大值 2000 2000 2000
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
class Solution {
private:int getSum(int n) {int ans = 0;while (n) {ans += n % 10;n /= 10;}return ans;}
public:int differenceOfSum(vector<int>& nums) {int x = 0, y = 0;for (int t : nums) {x += t, y += getSum(t);}return abs(x - y);}
};
Go
package mainfunc abs(x int) int {if x >= 0 {return x}return -x
}func getSum(x int) int {ans := 0for x > 0 {ans += x % 10x /= 10}return ans
}func differenceOfSum(nums []int) int {x, y := 0, 0for _, t := range nums {x += ty += getSum(t)}return abs(x - y)
}
Java
class Solution {private int getSum(int t) {int ans = 0;while (t > 0) {ans += t % 10;t /= 10;}return ans;}public int differenceOfSum(int[] nums) {int x = 0, y = 0;for (int t : nums) {x += t;y += getSum(t);}return Math.abs(x - y);}
}
Python
from typing import Listclass Solution:def getSum(self, x: int) -> int:ans = 0while x:ans += x % 10x //= 10return ansdef differenceOfSum(self, nums: List[int]) -> int:x = y = 0for t in nums:x += ty += self.getSum(t)return abs(x - y)

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/142568318

http://www.lryc.cn/news/449921.html

相关文章:

  • SpringCloud-pom创建Eureka
  • 动态规划算法专题(一):斐波那契数列模型
  • H.264编解码工具 - x264
  • 外卖点餐小程序源码系统 单店多门店自助切换 带完整的安装代码包以及搭建部署教程
  • 通过Ideal和gitbash共同实现分支合并
  • Vue.js 组件开发
  • 【Lcode 随笔】C语言版看了不后悔系列持续更新中。。。
  • 排序--希尔排序
  • 【教程】57帧! Mac电脑流畅运行黑神话悟空
  • 『大模型笔记』Docker如何清理Build Cache!
  • 如何使用 Python 读取数据量庞大的 excel 文件
  • c语言200例 067
  • RabbitMQ的高级特性-死信队列
  • Python 复制PDF中的页面
  • Sql Developer日期显示格式设置
  • IP地址与智能家居能够碰撞出什么样的火花呢?
  • 人工智能技术在电磁场与微波技术专业的应用
  • The First项目报告:探索Yield Guild Games运行机制与发展潜力
  • 完成UI界面的绘制
  • iot网关是什么?iot网关在工业领域的应用-天拓四方
  • 从碎片到整合:EasyCVR平台如何重塑城市感知系统的视频数据生态
  • java socket bio 改造为 netty nio
  • 进程、线程、协程详解:并发编程的三大武器
  • 探索5 大 Node.js 功能
  • EZUIKit.js萤石云vue项目使用
  • 【Linux】磁盘分区挂载网络配置进程【更详细,带实操】
  • Java 为什么使用 UTF-16 而不是更节省内存的 UTF-8?
  • 损失函数篇 | YOLOv10 引入 Inner-IoU 基于辅助边框的IoU损失
  • 夹耳开放式耳机好用吗?一篇文章告诉你答案,附上挑选避坑小知识
  • WebSocket 2024/9/30