给你一个下标从 0 开始的整数数组 nums
,其中 nums[i]
是 0
到 9
之间(两者都包含)的一个数字。
nums
的 三角和 是执行以下操作以后最后剩下元素的值:
nums
初始包含n
个元素。如果n == 1
,终止 操作。否则,创建 一个新的下标从 0 开始的长度为n - 1
的整数数组newNums
。- 对于满足
0 <= i < n - 1
的下标i
,newNums[i]
赋值 为(nums[i] + nums[i+1]) % 10
,%
表示取余运算。 - 将
newNums
替换 数组nums
。 - 从步骤 1 开始 重复 整个过程。
请你返回 nums
的三角和。
输入: nums = [1,2,3,4,5] 输出: 8 解释: 上图展示了得到数组三角和的过程。
输入: nums = [5] 输出: 5 解释: 由于 nums 中只有一个元素,数组的三角和为这个元素自己。
1 <= nums.length <= 1000
0 <= nums[i] <= 9
impl Solution {
pub fn triangular_sum(nums: Vec<i32>) -> i32 {
let mut nums = nums;
while nums.len() > 1 {
nums = (0..nums.len() - 1)
.map(|i| (nums[i] + nums[i + 1]) % 10)
.collect();
}
nums[0]
}
}