LeetCode43.字符串相乘【大整数相乘】

在这里插入图片描述

LeetCode刷题记录

文章目录

    • 📜题目描述
    • 💡解题思路


📜题目描述

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。

示例1

输入: num1 = "2", num2 = "3"
输出: "6"

示例1

输入: num1 = "123", num2 = "456"
输出: "56088"

提示:

  • 1 <= num1.length, num2.length <= 200
  • num1 和 num2 只能由数字组成。
  • num1 和 num2 都不包含任何前导零,除了数字0本身。

💡解题思路

解法1
image-20220917190830777
代码1
在这里插入图片描述
对于解法1来说,时间复杂度:O(MN+N^2)

M为num1的长度,N为num2的长度

外层:N , 内层:遍历num1:M,字符串相加(最大为M+N)

​ 内层整体取M+N

所以整体是M*N+N^2


解法2

该算法是通过两数相乘时,乘数某位与被乘数某位相乘,与产生结果的位置的规律来完成

乘数num1的长度为M,num2的长度为N

那么他们的结果的位数不会超过M+N(一位数*两位数结果最大也就3位数 99*9),假设存放在串mul

对于串num1,和串num2num1[i]*num2[j]的结果一定是两位数并且小于等于81,"xy"形式或者"0y形式",其中第一位位于mul[i+j],第二位位于mul[i+j+1]

如图所示:

image-20220917200525530

所以,思路就是:

  1. 首先new一个M+N大小的int数组mul用于存放最后结果
  2. 然后依次把num1[i]与num2[j]相乘的结果 追加到 mul[i+j+1]位置,然后让mul[i+j]位置 += mul[i+j+1]%10 , mul[i+j+1]位置/=10

最后的整型数组用一个string依次拼接就是目标结果
代码2
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28518.shtml

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

相关文章

记录一次centos扩容

背景 在Vscode上连虚拟机写项目&#xff0c;突然提示磁盘空间不足(no space left on device)&#xff0c;一开始打算删些东西&#xff0c;这里参考博客&#xff0c;写得挺清楚的&#xff0c;但是操作后我发现实在没啥文件可以删除&#xff0c;所以干脆不删了&#xff0c;直接扩…

创建comfyui自定义节点

参考 https://github.com/liubai-liubai/ComfyUI-ImgSeg-LB/tree/main https://blog.styxhelix.life/?p33 安装 不需要安装任何其他依赖文件&#xff0c;只需要把0x_erthor_node文件夹复制到custom_nodes文件夹下&#xff0c;就能安装成功。 a1&#xff1a;展示了代码结构&…

ensp模拟器USG6000V1配置DCHP功能

接着上一篇配置&#xff0c;继续本篇的内容。开启DHCP功能非常简单&#xff0c;只需几个命令即可。实验拓扑图也非常简单&#xff0c;如下&#xff1a; 开启防火墙DHCP功能&#xff1a; [USG6000V1]dhcp enable 选择DHCP接口并设置接口IP地址&#xff0c;这里给g1/0/0配置2网…

关于lspci命令的相关使用

本实验的目的: 1.知道如何找到想要的PCIE 设备 2.找到设备后,如何得知其厂商ID和设备ID 3.知道如何查看PCIE 设备的LnkCap和LnkSta 4.知道这个PCIE设备究竟挂在那里 一. 查看总体信息 直接使用 lspci 命令,结果如下: 其中第一列形如 "00:00.0" 的含义是 &…

数据库原理(关系型数据库基本理论)——(

一、关系的概念 1.关系的定义 &#xff08;1&#xff09;域 域是一组具有相同数据类型的值的集合&#xff0c;可以理解为int[]&#xff08;int类型的数组&#xff09;是一个域。 &#xff08;2&#xff09;笛卡儿积 简单来说&#xff0c;若干个域的笛卡儿积就是将这几个域的…

RMAN-06023 FRA 和DATA永远不要放在一起

由于FRA 和DATA放在一起&#xff0c;BACKUPSET PDB里面是和datafile放在一起的&#xff0c;再一串数据的目录里&#xff0c;正常会认为这个目录包含的是datafile. ASMCMD> ls DATA1/CDB/0633F844101D69CBE0636401A8C09D55/BACKUPSET/2024_06_15/nnndf0_tag20240615t223219_0…

MySQL日志(三):数据安全

先来看一个结论&#xff1a;只要redo log和binlog保证持久化到磁盘&#xff0c; 就能确保MySQL异常重启后&#xff0c; 数据可以恢复。 binlog写入逻辑 binlog的写入逻辑比较简单&#xff1a; 事务执行过程中&#xff0c; 先把日志写到binlog cache&#xff0c; 事务提交的时候…

腾讯测试开发复试<硬核面经>

隔天捞测试开发-腾讯云&#xff0c;硬核90min 3.27 状态返回初面 2h 自我介绍你的项目实习中sql的基本操作&#xff0c;用到了sql实现什么样的功能&#xff0c;或者场景给你一个场景&#xff0c;比如两个客户端都要去操作同一条数据这时候会发生什么现象&#xff0c;你如何处…

Linux:线程池

Linux&#xff1a;线程池 线程池概念封装线程基本结构构造函数相关接口线程类总代码 封装线程池基本结构构造与析构初始化启动与回收主线程放任务其他线程读取任务终止线程池测试线程池总代码 线程池概念 线程池是一种线程使用模式。线程过多会带来调度开销&#xff0c;进而影…

2024.06.03 校招 实习 内推 面经

1、提前批 | RoboSense 速腾聚创 2025届全球校园招聘提前批启动-免笔试&#xff08;内推&#xff09; 提前批 | RoboSense 速腾聚创 2025届全球校园招聘提前批启动-免笔试&#xff08;内推&#xff09; 2、校招 | 星纵物联2025届校园招聘全面启动&#xff01; 校招 | 星纵物联…

PyTorch -- nn.Module 快速实践

网络层父类 nn.Module&#xff1a;Evrey Layer is nn.Module (nn.Linear, nn,Conv2d …)具体的&#xff0c;我们在定义自已的网络时&#xff1a;需要继承 nn.Module&#xff0c;并重新实现 __init__ 方法: 一般放置网络中具有可学习参数的层&#xff08;如全连接层、卷积层等&a…

STM32CubeMX配置-外部中断配置

一、简介 MCU为STM32G070&#xff0c;配置为上升沿触发外部中断&#xff0c;在上升沿外部中断回调函数中进行相关操作。 二、外部中断配置 查看规格书中管教描述&#xff0c;找到I/O对应的外部中断线&#xff0c;然后进行如下上升沿触发外部中断配置。 三、生成代码 调用上升沿…

【 Python高级编程】Matplotlib中xlabel 和 xticks参数的区别

xlabel 和 xticks 是 Matplotlib 中用于处理 x 轴标签的两个函数&#xff1a; xlabel 设置 x 轴的标签。仅设置标签文本&#xff0c;不影响刻度位置或格式。 xticks 设置 x 轴的刻度位置和标签。接受两个参数&#xff1a;位置和标签。可以用来自定义刻度的位置和格式。 主…

JavaScript 规范霍夫曼编码

霍夫曼编码是一种无损数据压缩算法&#xff0c;其中数据中的每个字符都分配有可变长度的前缀代码。出现频率最低的字符获得最大代码&#xff0c;出现频率最高的字符获得最小代码。使用这种技术对数据进行编码非常简单且高效。但是&#xff0c;解码使用此技术生成的比特流效率低…

Parallels Desktop 19 激活码 - 苹果 Mac 最新版 PD 19激活密钥虚拟机下载 (支持Win11/macOS Sonoma)

Parallels Desktop 被称为 macOS 上强大的虚拟机软件。可以在 Mac 下同时模拟运行 Win、Linux、Android 等多种操作系统及软件而不必重启电脑&#xff0c;并能在不同系统间随意切换。 最新版 Parallels Desktop 19 (PD19) 完全支持 macOS Sonoma、Ventura 和 Windows 11 / Win…

【Ardiuno】实验使用OPT语音模块播放语音(图文)

当我们需要在程序中播放语音内容时&#xff0c;就需要使用到语音模块&#xff0c;今天我们就来实验一下使用OPT语音模块来方法语音。 const int voicePin 5; const int voiceBusyPin 18; const int testLEDPin 2;unsigned long pmillis 0;int busyVal 0; …

LeetCode | 125.验证回文串

这道题一开始的想法是把原字符串的非数字英文字符去掉&#xff0c;然后判断剩下的字符串是否为回文串即可&#xff0c;其中去掉非数字英文字符可以遍历一遍字符串依次处理&#xff0c;也可以用正则表达式&#xff0c;然后判断是否是回文串只需要两个指针&#xff0c;一头一尾&a…

OpenCV目标识别

一 图像轮廓 具有相同颜色或强度的连续点的曲线。 图像轮廓的作用 可以用于图像分析 物体的识别与检测 注意 为了检测的准确性&#xff0c;需要先对图像进行二值化或Canny操作。 画轮廓时会修改输入的图像。 轮廓查找的API findContours(img,mode,ApproximationMode,...)…

代码随想录算法训练营第十天| 232.用栈实现队列|225. 用队列实现栈|20. 有效的括号|1047. 删除字符串中的所有相邻重复项

232.用栈实现队列 文档讲解&#xff1a;代码随想录 视频讲解&#xff1a;栈的基本操作&#xff01; | LeetCode&#xff1a;232.用栈实现队列_哔哩哔哩_bilibili 知道要用两个栈实现&#xff0c;具体咋做忘了。队列的特性是先进先出&#xff0c;栈是先进后出&#xff0c;入队操…

upload-labs第八关教程

upload-labs第八关教程 一、源代码分析代码审计 二、绕过分析点绕过上传eval.php使用burp suite进行抓包修改放包&#xff0c;查看是否上传成功使用中国蚁剑进行连接 一、源代码分析 代码审计 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(U…