leetcode打卡--66. 加一
Posted C_YCBX Py_YYDS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode打卡--66. 加一相关的知识,希望对你有一定的参考价值。
题目
解题分析
对于数组类型+1或者-1,很明显属于大数模拟加减的过程,我们需要考虑为9进1的特殊情况。
解题代码
Cpp代码
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int len = digits.size();
for(int i=len-1;i>=0;i--){
if(digits[i]==9){
digits[i]=0;
continue;
}
else {
digits[i]+=1;
return digits;
}
}
vector<int>t;
if(digits[0]==0){
t.resize(len+1);
t[0]=1;
}
return t;
}
};
C代码
int* plusOne(int* digits, int digitsSize, int* returnSize) {
for (int i = digitsSize - 1; i >= 0; i--)
{
if (digits[i] < 9) {
digits[i]++;
*returnSize = digitsSize;
return digits;
}
digits[i] = 0;
}
int* result = (int*)malloc(sizeof(int) * (digitsSize + 1));
result[0] = 1;
for (int i = 1; i < (digitsSize + 1); i++)
{
result[i] = 0;
}
*returnSize = digitsSize + 1;
return result;
}
Go语言
func plusOne(digits []int) []int {
n := len(digits);
for i:=n-1;i>=0;i--{
if digits[i]==9{
digits[i] = 0;
continue;
}else{
digits[i] += 1;
return digits;
}
}
digits = append(digits,0);
digits[0] = 1;
return digits;
}
python强者一行解决
简单解释以下python的代码:map是一个用于将能够迭代的类型每个子项进行一次函数调用得出多个函数调用结果,然后返回一个迭代器类型。可以直接给 –
''.join 或 list()
使用。由于题中的列表不是str类型,所以需要先把所有元素转str类型才能直接转str,然后 str 可以和 int 互转,最后返回一个迭代器得出List[int]
类型
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
return list(map(int,str(int(''.join(map(str,digits)))+1)))
Java代码
class Solution {
public int[] plusOne(int[] digits) {
for(int i=digits.length-1;i>=0;i--){
if(digits[i]==9){
digits[i] = 0;
continue;
}else{
digits[i] += 1;
return digits;
}
}
int[] res = new int[digits.length+1];
res[0] = 1;
return res;
}
}
以上是关于leetcode打卡--66. 加一的主要内容,如果未能解决你的问题,请参考以下文章