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

1281. 整数的各位积和之差

诸神缄默不语-个人CSDN博文目录
力扣刷题笔记

在这里插入图片描述
在这里插入图片描述

文章目录

  • 1. 简单粗暴的遍历
  • 2. 其实也是遍历,但是用Python内置函数只用写一行

1. 简单粗暴的遍历

Python版:

class Solution:def subtractProductAndSum(self, n: int) -> int:he=0ji=1while n>=1:last_number=n%10he+=last_numberji*=last_numbern=n//10  #就是n=int(n/10)的意思return ji-he

Java版:

class Solution {public int subtractProductAndSum(int n) {int he=0;int ji=1;while(n>=1){int last_number=n%10;he+=last_number;ji*=last_number;n/=10;  //我一开始写成了n=(int)(n/10);  Java的话不需要做这个转换}return ji-he;}
}

时间复杂度: O ( log ⁡ n ) O(\log n) O(logn)
空间复杂度: O ( 1 ) O(1) O(1)

参考ChatGPT的回答,解释一下时间复杂度:

这个函数的目的是计算给定数字 n n n 的各个数字的乘积与和的差值。在这个过程中,你会遍历整个数字的每一位。

时间复杂度是 O ( log ⁡ n ) O(\log n) O(logn) 的原因是你每次迭代都会通过 n = n / / 10 n = n // 10 n=n//10 将数字的位数减少一位。因此,你将执行与数字 n n n 的位数相同的迭代次数。

现在,让我们理解为什么数字 n n n 最多有 log ⁡ n \log n logn 位。

给定一个 k k k 位的数字 n n n,最大值为 1 0 k − 1 10^k-1 10k1,最小值为 1 0 k − 1 10^{k-1} 10k1

1 0 k − 1 ≤ n < 1 0 k 10^{k-1} \leq n < 10^k 10k1n<10k

取两边的对数,你得到:

k − 1 ≤ log ⁡ 10 n < k k-1 \leq \log_{10} n < k k1log10n<k

所以 k k k就是数字 n n n 的位数,它的上界是 log ⁡ 10 n + 1 \log_{10} n+1 log10n+1
因此,遍历数字 n n n 的每一位需要 O ( log ⁡ n ) O(\log n) O(logn) 的时间。

2. 其实也是遍历,但是用Python内置函数只用写一行

class Solution:def subtractProductAndSum(self, n: int) -> int:return eval('*'.join(str(n))) - eval('+'.join(str(n)))
http://www.lryc.cn/news/127955.html

相关文章:

  • 如何使用Vue和C++实现OJ《从零开始打造 Online Judge》
  • 在Spring Boot和Vue中实现请求过滤器以验证请求头中的Token
  • ThreeJS——在3D地球上标记中国地图板块
  • 第2章 性能测量
  • 未来,运营的重要性大于产品?
  • paddle ocr框架识别数字问题和解决方案
  • 构建高性能的MongoDB数据迁移工具:Java的开发实践
  • 2023年国赛数学建模思路 - 案例:最短时间生产计划安排
  • 1572. 矩阵对角线元素的和
  • 在vue中使用swiper轮播图(搭配watch和$nextTick())
  • Java书签 #使用MyBatis接入多数据源
  • 神经网络基础-神经网络补充概念-23-神经网络的梯度下降法
  • 鸿蒙3.1 设备管理DeviceManager
  • Git 目录详解
  • 基于springboot+vue的武汉旅游网(前后端分离)
  • 步入React正殿 - React组件设计模式
  • Java 单例模式简单介绍
  • 根据源码,模拟实现 RabbitMQ - 从需求分析到实现核心类(1)
  • 企业服务器数据库遭到malox勒索病毒攻击后如何解决,勒索病毒解密
  • udp与can通信的选择与比较
  • HoudiniVex笔记_P24_ForceBasics力基础
  • 半导体退火那些事(1)
  • MapReduce介绍
  • Redis支持的主要数据结构操作命令有哪些?
  • 环境与能源创新专题:地级市绿色创新、碳排放与环境规制数据
  • 设计模式之门面模式(Facade)的C++实现
  • 【数理知识】向量与基的内积,Matlab 代码验证
  • 黑客入侵:福特汽车Sync3车机存在漏洞,黑客入侵可抹除系统数据
  • 面试热题(单词搜索)
  • 自定义表格组件:实现表格中有固定列的功能逻辑