力扣(LeetCode)整数形式的整数加法 个人题解
对于非负整数 X
而言,X
的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231
,那么其数组形式为 [1,2,3,1]
。
给定非负整数 X
的数组形式 A
,返回整数 X+K
的数组形式。
示例 1:
- 输入:A = [1,2,0,0], K = 34
- 输出:[1,2,3,4]
- 解释:1200 + 34 = 1234
解释 2:
- 输入:A = [2,7,4], K = 181
- 输出:[4,5,5]
- 解释:274 + 181 = 455
示例 3:
- 输入:A = [2,1,5], K = 806
- 输出:[1,0,2,1]
- 解释:215 + 806 = 1021
示例 4:
- 输入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
- 输出:[1,0,0,0,0,0,0,0,0,0,0]
- 解释:9999999999 + 1 = 10000000000
提示:
1 <= A.length <= 10000
0 <= A[i] <= 9
0 <= K <= 10000
- 如果
A.length > 1
,那么A[0] != 0
这题做法的思路是比较简单的,逐位相加,记得设置进位,从右到左最后得到结果。
我这里使用了原地的vector来做,所以内存使用上比较少,但是逻辑判断就比较麻烦一些了。如果K的位数大于数组的位数还得再进行处理。
代码如下:
- class Solution {
- public:
- vector<int> addToArrayForm(vector<int>& A, int K) {
- int cf=;
- for(int i=A.size()-; i>=; i--) {
- int tmp=K%;
- int newnum = tmp+A[i]+cf;
- if(newnum >= ) {
- newnum-=;
- cf=;
- } else {
- cf=;
- }
- A[i]= newnum;
- K/=;
- }
- while (K!=) {
- A.insert(A.begin(),K+cf);
- cf = (K+cf)/;
- K/=;
- }
- if (cf!=)
- A.insert(A.begin(),cf);
- return A;
- }
- };
多说一句,题解区有更巧的方法,但是思路本质是一样的 戳->https://leetcode-cn.com/problems/add-to-array-form-of-integer/solution/shu-zu-xing-shi-de-zheng-shu-jia-fa-by-leetcode/
力扣(LeetCode)整数形式的整数加法 个人题解的更多相关文章
- 力扣Leetcode 179. 最大数 EOJ 和你在一起 字符串拼接 组成最大数
最大数 力扣 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说 ...
- 力扣Leetcode 45. 跳跃游戏 II - 贪心思想
这题是 55.跳跃游戏的升级版 力扣Leetcode 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃 ...
- 【力扣leetcode】-787. K站中转内最便宜的航班
题目描述: 有 n 个城市通过一些航班连接.给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 p ...
- 力扣Leetcode 面试题56 - I. 数组中数字出现的次数
面试题56 - I. 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 示例 ...
- leetcode 力扣第七题: 整数反转
哇,发现会写算法的人好牛逼啊,而且好像大多写算法的都不用PHP,哈哈哈哈哈,在领扣里面都没有php这个选项,真尴尬 从几个月之前就想刷题了,但是不会啊,很懵逼啊,昨天搜了一下答案,好像才打开了我这个写 ...
- 力扣992.K个不同整数的子数组-C语言实现
题目 原题链接 给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续.不一定独立的子数组为好子数组. (例如,[1,2,3,1,2] 中有 3 个不同的整数: ...
- 力扣Leetcode 560. 和为K的子数组
和为K的子数组 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数. 示例 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1 ...
- 力扣Leetcode 50. 实现Pow(x, n)
实现Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 ...
- 力扣Leetcode 983. 最低票价
最低票价 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行.在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出.每一项是一个从 1 到 365 的整数. 火车票有三种不同的销 ...
随机推荐
- 一篇文章彻底搞懂snowflake算法及百度美团的最佳实践
写在前面的话 一提到分布式ID自动生成方案,大家肯定都非常熟悉,并且立即能说出自家拿手的几种方案,确实,ID作为系统数据的重要标识,重要性不言而喻,而各种方案也是历经多代优化,请允许我用这个视角对分布 ...
- [系列] go-gin-api 路由中间件 - 签名验证(七)
目录 概览 MD5 组合 AES 对称加密 RSA 非对称加密 如何调用? 性能测试 PHP 与 Go 加密方法如何互通? 源码地址 go-gin-api 系列文章 概览 首先同步下项目概况: 上篇文 ...
- 3、Struts2的API访问和数据封装
一.API的访问 在使用Struts2的框架的过程中,发现Struts2和Servlet的API是解耦合的.在实际开发中,经常使用到Servlet的API,比如进行登录,将用户的信息保存到Sessio ...
- dapper之连接数据库(Oracle,SQL Server,MySql)
因为项目需求,需要项目同时可以访问三个数据库,因此本人经过一番研究,得出以下代码. 1.建立公共连接抽象类(DataBase) public abstract class DataBase { /// ...
- Spring MVC(3)Spring MVC 高级应用
一.Spring MVC 的数据转换和格式化 前面的应用,都只是用HandlerAdapter去执行处理器. 处理器和控制器不是一个概念,处理器是在控制器功能的基础上加上了一层包装,有了这层包装,在H ...
- Rest_Framework之频率组件部分
一.RestFramework之频率组件源码部分 频率组件的源码部分和权限组件流程一模一样的,这里就不多说了,直接上源码的主要逻辑部分: def check_throttles(self, reque ...
- vue设置页面标题
使用vue-wechat-title插件对页面标题进行设置 1.安装模块 命令行窗口中运行npm install vue-wechat-title --save PS.如果程序正在运行,ctrl ...
- Java 干货之深入理解Java内部类
可以将一个类定义在另一个类或方法中,这样的类叫做内部类 --<Thinking in Java> 说起内部类,大家并不陌生,并且会经常在实例化容器的时候使用到它.但是内部类的具体细节语法, ...
- 【XSY1986】【BZOJ1455】罗马游戏
就是一模板题. 合并就直接merge. pop就是将自己的值设为一,再将自己的左右儿子合并即可. 查询直接找到堆顶,输出. 模板左偏树 代码: #include<bits/stdc++.h> ...
- 基于 Jenkins Pipeline 自动化部署
最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置 ...