美文网首页
算法题:两数相加

算法题:两数相加

作者: hui8685291 | 来源:发表于2021-03-22 22:14 被阅读0次

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

解题代码:(Objective-c)

- (NSArray *)operation:(NSArray *)arr1 :(NSArray *)arr2{
    NSInteger num = MAX(arr1.count, arr2.count);
    NSArray *a1 = [self changeArr:arr1 :num];
    NSArray *a2 = [self changeArr:arr2 :num];
    
    NSMutableArray *totalArr = [NSMutableArray array];
    NSInteger temp = 0;
    for(NSInteger i = 0; i < num; i++) {
        if ([a1[i] intValue] >= 10 || [a2[i] intValue] >= 10) {
            return @[];
        }
        
        NSInteger sumNum = [a1[i] intValue] + [a2[i] intValue];
        if (1 == temp) {
            sumNum += 1;
            temp = 0;
        }
        
        if(sumNum < 10) {
            [totalArr addObject:@(sumNum)];
        } else {
            if (i == num-1) {
                 [totalArr addObject:@(sumNum % 10)];
                 [totalArr addObject:@(1)];
            }else{
                 [totalArr addObject:@(sumNum % 10)];
                 temp = 1;
            }
           
        }
    }
    
    [totalArr.reverseObjectEnumerator allObjects];
    
    return totalArr;
}

- (NSArray *)changeArr:(NSArray *)arr : (NSInteger)maxNum{
    NSInteger arrCount = arr.count;
    NSMutableArray *mutableArr = [[NSMutableArray alloc]initWithArray:arr];
    if (arrCount < maxNum) {
        for (NSInteger i = arrCount ; i < maxNum; i++) {
            [mutableArr addObject:@0];
        }
    }
    
    return mutableArr;
}

相关文章

  • [算法题]两数相加

    本文由黑壳博客整理 本文来源[算法题]两数相加 今日总结 不会画画的程序猿不是个好博主 正文 场景问题 上次整理完...

  • 算法题:两数相加

    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 ...

  • LeetCode算法题:两数相加

    需求 两数相加: 思路 链表是倒序存储数值,432 在链表存储是2-3-4,当求和之后,还需将值转成链表,1.根据...

  • 两数相加 II(golang)

    原题:两数相加 II 使用栈,其它与两数相加(golang)类似

  • 算法(leetode,附思维导图 + 全部解法)300题之(2)

    标题:算法(leetode,附思维导图 + 全部解法)300题之(2)两数相加 导读: 项目&作者 1 GitHu...

  • LeetCode算法第2题:两数相加

    问题描述: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们...

  • 每日Leetcode—算法(17)

    2.两数相加 算法: 3. 无重复字符的最长子串 算法:

  • 算法实现两数相加

    需求描述:请封装一个add()方法,用于计算两个a->b格式的字符串的和(其中a和b都是[0, 9]之间的整数)。...

  • OC算法-两数相加

    题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个...

  • 每日算法(两数之和、两数相加)-11.12

    今天开始记录每天学习一道两道的算法题,由简入难。今天一共学习了两道算法,一道简单一道中等,分别为两数之和、两数相加...

网友评论

      本文标题:算法题:两数相加

      本文链接:https://www.haomeiwen.com/subject/bngthltx.html