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.mzph.cn/news/41088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis 数据结构(一)

Redis 为什么那么快 redis是一种内存数据库&#xff0c;所有的操作都是在内存中进行的&#xff0c;还有一种重要原因是&#xff1a;它的数据结构的设计对数据进行增删查改操作很高效。 redis的数据结构是什么 redis数据结构是对redis键值对值的数据类型的底层的实现&#xff0c…

WordToPDF2.java

用Java将Word转PDF 本例子测试了spire.doc.free-3.9.0.jar的包 <dependency><groupId> e-iceblue </groupId><artifactId>spire.doc.free</artifactId><version>3.9.0</version></dependency> package word;import com.spire.…

Java 动态代理

文章目录 静态代理Jdk动态代理cglib动态代理使用案例低配Mybatis低配Feign拦截器 附录代码 大家好&#xff0c;我是入错行的bug猫。&#xff08;http://blog.csdn.net/qq_41399429&#xff0c;谢绝转载&#xff09; 每天进步一点&#xff0c;今日再接再励~ 动态代理在Java中有着…

“深入探索JVM内部机制:解密Java虚拟机“

标题&#xff1a;深入探索JVM内部机制&#xff1a;解密Java虚拟机 摘要&#xff1a;本篇博客将深入剖析Java虚拟机&#xff08;JVM&#xff09;的内部机制&#xff0c;包括类加载、内存管理、垃圾回收、即时编译等关键组成部分。通过对JVM内部机制的解密&#xff0c;我们可以更…

团团代码生成器V1.0:一键生成完整的CRUD功能(提供Gitee源码)

前言&#xff1a;在日常开发的中&#xff0c;经常会需要重复写一些基础的增删改查接口&#xff0c;虽说不难&#xff0c;但是会耗费我们一些时间&#xff0c;所以我自己开发了一套纯SpringBoot实现的代码生成器&#xff0c;可以为我们生成单条数据的增删改查&#xff0c;还可以…

中远麒麟堡垒机 SQL注入漏洞复现

0x01 产品简介 中远麒麟依托自身强大的研发能力,丰富的行业经验&#xff0c;自主研发了新一代软硬件一体化统一安全运维平台一-iAudit 统一安全运维平台。该产品支持对企业运维人员在运维过程中进行统一身份认证、统一授权、统一审计、统一监控&#xff0c;消除了传统运维过程中…

实现Python脚本录制功能

要实现Python脚本录制功能&#xff0c;可以使用Python的内置模块pyautogui和opencv。 首先&#xff0c;需要安装这两个模块&#xff1a; pip install pyautogui opencv-python 然后&#xff0c;可以编写以下代码来实现脚本录制功能&#xff1a; import cv2 import numpy as …

CentOS7.6安装配置MySQL 5.7及常用命令汇总

一、MySQL安装&#xff08;rpm安装&#xff09; 1、检查没有安装过mysql或mariadb rpm -qa | grep -i mysql rpm -qa | grep -i mariadb 返回空值的话&#xff0c;就说明没有安装 MySQL。注意&#xff1a;在新版本的CentOS7中&#xff0c;默认的数据库已更新为了Mariadb&#…

你需要需求管理解决方案的三个原因

我们最近研究了一份 Forrester Research 的报告&#xff0c;得出如下结论&#xff1a;高度监管的行业可以从敏捷需求管理方法中受益。在本文中&#xff0c;我们将深入探讨所有行业的客户如何从一个协作平台中受益&#xff0c;该平台如何帮助他们在复杂的开发周期中管理需求。 …

【支付宝小程序】支付宝小程序自定义组件技术教程

&#x1f996;我是Sam9029&#xff0c;一个前端 Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-JS学习,CSS学习,Vue-2领域博主 **&#x1f431;‍&#x1f409;&#x1f431;‍&#x1f409;恭喜你&#xff0c;若此文你认为写的不错&#xff0c;不要吝啬你的赞扬&#xff0c…

接口设置了responseType:‘blob‘后,接收不到后端错误信息

下载文件流&#xff0c;需要接口设置responseType:blob&#xff0c;接口设置了responseType:blob后&#xff0c;拿不到后端接口的异常信息&#xff0c;我们只需要添加如下代码&#xff1a; const service axios.create({baseURL: ***, // url base url request url// withC…

影视公司技术流程设计之服务器搭建

在影视公司&#xff0c;硬件的投入占相当大的比例&#xff0c; 大到存储&#xff0c; 服务器&#xff0c;工作站&#xff0c; 小到主机CPU&#xff0c;内存&#xff0c;显卡&#xff0c;手绘板。 而存储又是硬件上的大头&#xff0c;一套合理的存储解决方案&#xff0c;优为关键…

【kubernetes】持久卷PV、PVC

目录 PV和PVC之间的相互作用遵循这个生命周期 根据这 5 个阶段&#xff0c;PV 的状态有以下 4 种 一个PV从创建到销毁的具体流程如下 静态PV创建 1、配置nfs存储 2、定义PV 3、定义PVC 4、测试访问 动态PV创建 1、在stor01节点上安装nfs&#xff0c;并配置nfs服务 2…

计算机视觉之三维重建(二)(摄像机标定)

标定示意图 标定目标 P ′ M P w K [ R T ] P w P^{}MP_wK[R \space T]P_w P′MPw​K[R T]Pw​ 其中 K K K为内参数&#xff0c; [ R T ] [R \space T] [R T]为外参数。该式子需要使用至少六对内外点对进行求解内外参数&#xff08;11个未知参数&#xff09;。 其中 R 3 3 …

windows系统丢失mfc120u.dll的解决方法

1.mfc120u.dll是什么 mfc120u.dll是Windows操作系统中的一个动态链接库&#xff08;Dynamic Link Library&#xff0c;简称DLL&#xff09;文件。它包含了一些用于运行C程序的函数和其他资源。这个特定的DLL文件是Microsoft Foundation Classes&#xff08;MFC&#xff09;库的…

freeswitch的mod_xml_curl模块动态获取configuration

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 mod_xml_curl模块支持从web服务获取xml配置&#xff0c;本文介绍如何动态获取acl配置。 环境 centos&#xff1a;CentOS release 7.0 (Final)或以上版本 freeswitch&#xff1a;v1.6.20 GCC&#xff1a;4.8.5 web…

第2章 性能测量

理解应用程序性能的第一步是学会对它进行测量。 与绝大多数功能问题相比&#xff0c;性能问题通常很难跟踪和复现。 任何关注过性能评估的人可能都知道公允地进行性能测量并从中得到准确结论是多么困难。 因为在测量中存在误差&#xff0c;性能分析通常需要统计方法进行处理…

ThreadLocal(超详细介绍!!)

关于ThreadLocal&#xff0c;可能很多同学在学习Java的并发编程部分时&#xff0c;都有所耳闻&#xff0c;但是如果要仔细问ThreadLocal是个啥&#xff0c;我们可能也说不清楚&#xff0c;所以这篇博客旨在帮助大家了解ThreadLocal到底是个啥&#xff1f; 1.ThreadLocal是什么&…

Android设备通过蓝牙HID技术模拟键盘实现

目录 一&#xff0c;背景介绍 二&#xff0c;技术方案 2.1 获取BluetoothHidDevice实例 2.2 注册/解除注册HID实例 2.3 Hid report description描述符生成工具 2.4 键盘映射表 2.5 通过HID发送键盘事件 三&#xff0c;实例 一&#xff0c;背景介绍 日常生活中&#xff0…

AndroidStudio中修改打包生成的apk名称

1.配置手机架构 splits {abi {enable truereset()include armeabi-v7a,arm64-v8auniversalApk false} } 2.多渠道 productFlavors {normal {applicationId "*****"manifestPlaceholders [appName: "string/app_name_normal"]}driver {applicationId &qu…