当前位置: 首页 > article >正文

进位算法(leetcode第66题)

题目描述:

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。

示例 2:

输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。

示例 3:

输入:digits = [0]
输出:[1]

算法:

思路:

用jw来记录最高位的状态

代码实现:
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* plusOne(int* digits, int digitsSize, int* returnSize)
{
    int jw = 1;//用于判定最高位是否进位
    int i;
    for (i = digitsSize - 1; i >= 0; i--) {
        digits[i] = digits[i] + jw;
        jw = digits[i] / 10;
        digits[i] = digits[i] % 10;
    }
    *returnSize = digitsSize + jw;//长度扩展判断
    int* sum = (int*)malloc(sizeof(int) * *returnSize);
    memset(sum, 0, sizeof(int) * *returnSize);
    for (i = digitsSize - 1; i >= 0; i--) {
        sum[i + jw] = digits[i];
    }
    sum[0] += jw;//最高位赋值
    
    return sum;
}

原解答链接:https://leetcode.cn/problems/plus-one/


http://www.kler.cn/a/157891.html

相关文章:

  • https到底把什么加密了?
  • 2023年【道路运输企业主要负责人】最新解析及道路运输企业主要负责人模拟考试
  • 每日一题(LeetCode)----字符串--反转字符串
  • Stable Diffusion教程:4000字说清楚图生图
  • R语言中如何改变表格数据的填充顺序
  • zxjy002- 后端项目环境搭建
  • JavaScript的创建对象时的语法糖
  • C语言-字符串输入输出
  • 奥本海默-电影剧情简介
  • Java---序列化
  • 前端路由的hash模式和history模式
  • Linux卸载MySql(简洁版)
  • Abaqus许可证无法激活问题
  • Hive HWI 配置
  • SpringSecurity的默认登录页的使用
  • Vis.js教程(二):基础关系图实现
  • mac 系统 vmware 安装centos8
  • mybatis的数据库连接池
  • 万兆多模光模块SFP-10G-SR:高速短距传输的最优选
  • vue自定义指令实现按钮只允许点击一次