本文主要是介绍力扣每日一题——66.加一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
力扣每日一题——66.加一
题目描述
代码注释
#include<stdio.h>
#include<stdlib.h>
int* plusOne(int* digits, int digitsSize, int* returnSize){//开辟新数组 int* result = (int*)malloc(sizeof(int)*(digitsSize+1));//最高位进位的话改变数组长度 int k=digitsSize;int i = k-1;//非最高位+1情况 for( i = k-1;i>0;i--){ if(digits[i]!=9){digits[i]+=1;break;}else{digits[i]=0;}}//最高位+1 if(i==0){//最高位为9,则数组长度+1,最高位变为1,其余都为0 if(digits[0]==9){result[0]=1;for(int j = 1;j<=digitsSize;j++){result[j]=0;}k++; }else{//最高位不为9,则最高位+1,其余变为0 result[0]=digits[0]+1;for(int j = 1;j<digitsSize;j++){result[j]=0;}}}else{//非最高位+1则直接copy数组以返回 for(int j=0;j<digitsSize;j++){result[j]=digits[j];}}//数组长度赋值 *returnSize = k;return result;
}
这篇关于力扣每日一题——66.加一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!