989. Add to Array-Form of Integer

2023-12-21 16:33
文章标签 integer form array add 989

本文主要是介绍989. Add to Array-Form of Integer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

989. 数组形式的整数加法

对于非负整数 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. 1 <= A.length <= 10000
    2. 0 <= A[i] <= 9
    3. 0 <= K <= 10000
    4. 如果 A.length > 1,那么 A[0] != 0

    解法一(暴力搜索,低效,超时错误)

    //时间复杂度O(n), 空间复杂度O(1)
    class Solution {
    public:vector<int> addToArrayForm(vector<int>& A, int K) {int i = A.size() - 1, carry = 0;while(i >= 0) {if(K == 0 && carry == 0) break;int sum = A[i] + K % 10 + carry;A[i] = sum % 10;carry = sum / 10;K /= 10;i--;}if(K == 0) {if(carry > 0) A.insert(A.begin(), 1);}else {if(carry > 0) K++;vector<int> tempVec;while(K > 0) {tempVec.push_back(K % 10);K /= 10;}A.insert(A.begin(), tempVec.rbegin(), tempVec.rend());}return A;}
    };

    总结:

    和之前的链表加法类似,只是链表的尾插变成了数组头插,效率有所下降。

    2019/08/23 18:51

    这篇关于989. Add to Array-Form of Integer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/520713

    相关文章

    form表单提交编码的问题

    浏览器在form提交后,会生成一个HTTP的头部信息"content-type",标准规定其形式为Content-type: application/x-www-form-urlencoded; charset=UTF-8        那么我们如果需要修改编码,不使用默认的,那么可以如下这样操作修改编码,来满足需求: hmtl代码:   <meta http-equiv="Conte

    js异步提交form表单的解决方案

    1.定义异步提交表单的方法 (通用方法) /*** 异步提交form表单* @param options {form:form表单元素,success:执行成功后处理函数}* <span style="color:#ff0000;"><strong>@注意 后台接收参数要解码否则中文会导致乱码 如:URLDecoder.decode(param,"UTF-8")</strong></span>

    前端form表单+ifarme方式实现大文件下载

    // main.jsimport Vue from 'vue';import App from './App.vue';import { downloadTokenFile } from '@/path/to/your/function'; // 替换为您的函数路径// 将 downloadTokenFile 添加到 Vue 原型上Vue.prototype.$downloadTokenF

    Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.B

    一个bug日志 FATAL EXCEPTION: main03-25 14:24:07.724: E/AndroidRuntime(4135): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.syyx.jingubang.ky/com.anguotech.android.activity.Init

    ubuntu16.04 Git add 使用tab键卡死

    以前使用Ubuntu14.04 进行git add 操作时使用TAB键可以很快自动补全,但自从使用16.04使用TAB半天没有反应。 一开始以为是Git版本问题,后验证与Git无关。 搜索发现与Dash有关,以下是博客原文: http://www.51testing.com/html/50/n-1245050.html 今天碰到一个问题git 后面的参数用Tab键无法补全

    Add All -uva优先队列的应用

    题目的解法属于贪心,因为cost=a1+a2,所以要保证每次的cost最小,所以说,每次将队列中最小的两个相加,得出来的数放入队列中,再取2个最小的相加,直到全部加完,所以这就涉及了一个取2个最小数的问题,我说一下我一开始的做法 #include<stdio.h>#include<iostream>#include<stdlib.h>using namespace std;#define

    【uva】11536-Smallest Sub-Array(区间移动问题)

    一个区间移动的问题,1A了,感觉没什么好说的。。 13975926 11536 Smallest Sub-Array Accepted C++ 0.809 2014-08-01 11:00:20 #include<cstdio>#include<cstring>#include<iostream>using namespace std;#define INF 1 << 30

    leetCode#448. Find All Numbers Disappeared in an Array

    Description Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once. Find all the elements of [1, n] inclusive that do not appear in this

    FORM的ENCTYPE=multipart/form-data 时request.getParameter()值为null问题的解决

    此情况发生于前台表单传送至后台java servlet处理: 问题:当Form需要FileUpload上传文件同时上传表单其他控件数据时,由于设置了ENCTYPE=”multipart/form-data” 属性,后台request.getParameter()获取的值为null 上传文件的参考代码:http://www.runoob.com/jsp/jsp-file-uploading.ht

    Android studio jar包多层嵌套,Add library '__local_aars__:...@jar' to classpath问题

    在添加jar包,早app下的build.gradle中的 implementation files('libs/jar包的名字.jar') 修改为 api files('libs/jar包的名字.jar') implementation 单层引用,只引用当前jar包层, api 多层引用,应用当前jar包层,已经jar包引用的jar包层