当前位置: 首页 > 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

相关文章:

  • Halcon基础系列1-基础算子
  • 【C++算法】2.双指针_复写零
  • 深入理解 CompletableFuture 的底层原理
  • 计算机视觉硬件整理(四):相机与镜头参数介绍
  • 【Kubernetes】常见面试题汇总(三十四)
  • python的逻辑控制
  • 高刷显示器哪个好?540Hz才有资格称高刷
  • 重修设计模式-行为型-责任链模式
  • 【玩转贪心算法专题】738. 单调递增的数字【中等】
  • 硬件设计很简单?合宙低功耗4G模组Air780E—开机启动及外围电路设计
  • 文件上传js代码
  • 华为认证HCIA篇--网络通信基础
  • JavaScript中if嵌套assert的方法
  • 【python append函数的一些细节】
  • 初步认识了解分布式系统
  • 2017年终总结、随想
  • CentOS 7 防火墙操作
  • Computed property XXX was assigned to but it has no setter
  • CSS相对定位
  • docker容器内的网络抓包
  • go语言学习初探(一)
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • js中的正则表达式入门
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 订阅Forge Viewer所有的事件
  • 给github项目添加CI badge
  • 关于 Cirru Editor 存储格式
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 微信小程序开发问题汇总
  • 一天一个设计模式之JS实现——适配器模式
  • 在weex里面使用chart图表
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • #### go map 底层结构 ####
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (23)Linux的软硬连接
  • (4)(4.6) Triducer
  • (C语言)二分查找 超详细
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (论文阅读40-45)图像描述1
  • (转)iOS字体
  • .gitignore文件设置了忽略但不生效
  • .NET 8.0 中有哪些新的变化?
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET学习全景图
  • @AliasFor注解
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @RestControllerAdvice异常统一处理类失效原因
  • [<MySQL优化总结>]
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [ARC066F]Contest with Drinks Hard
  • [Asp.net MVC]Bundle合并,压缩js、css文件