Rust 加一
加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
思路: 先旋转数组便于计算,声明一个变量保存进位,先加上进位,然后进位清零,在比较大小,大于9,进位加1;最后判断最后一位是否为零,是零push(1),最后旋转过来;
impl Solution {
pub fn plus_one(digits: Vec<i32>) -> Vec<i32> {
let mut vec = digits;
let len = vec.len();
if vec[len -1] < 9{
vec[len-1] = vec[len-1]+1;
return vec;
}
vec.reverse();
let mut j =1;
for i in 0..len {
vec[i] = vec[i] + j;
j = 0;
if vec[i] > 9{
j = 1;
vec[i] = 0;
}
}
if vec [len -1 ] == 0{
vec.push(1)
}
vec.reverse();
return vec;
}
}
可以不旋转,在头部插入,就是做一下镜像处理。
let mut vec = digits;
let len = vec.len();
if vec[len -1] < 9{
vec[len-1] = vec[len-1]+1;
return vec;
}
// vec.reverse();
// for i in 0..len-1{
// print!("{} ",vec[i])
// }
let mut j =1;
for i in 0..len {
vec[(len-1) - i] = vec[(len-1) - i] + j;
j = 0;
if vec[(len-1) - i] > 9{
j = 1;
vec[(len-1) - i] = 0;
}
}
if vec [0 ] == 0{
vec.insert(0, 1)
}
// vec.reverse();
return vec;

浙公网安备 33010602011771号