Find Triangular Sum of an Array

medium array math simulation

Problem

Each round, replace nums with a new array whose i-th element is (nums[i] + nums[i+1]) mod 10. Repeat until one element is left and return it.

Inputnums = [1, 2, 3, 4, 5]
Output8
[1,2,3,4,5]→[3,5,7,9]→[8,2,6]→[0,8]→[8].

def triangular_sum(nums):
    while len(nums) > 1:
        nums = [(nums[i] + nums[i + 1]) % 10 for i in range(len(nums) - 1)]
    return nums[0]
function triangularSum(nums) {
  while (nums.length > 1) {
    const next = [];
    for (let i = 0; i < nums.length - 1; i++) {
      next.push((nums[i] + nums[i + 1]) % 10);
    }
    nums = next;
  }
  return nums[0];
}
class Solution {
    public int triangularSum(int[] nums) {
        int n = nums.length;
        while (n > 1) {
            for (int i = 0; i < n - 1; i++) {
                nums[i] = (nums[i] + nums[i + 1]) % 10;
            }
            n--;
        }
        return nums[0];
    }
}
int triangularSum(vector<int>& nums) {
    int n = nums.size();
    while (n > 1) {
        for (int i = 0; i < n - 1; i++) {
            nums[i] = (nums[i] + nums[i + 1]) % 10;
        }
        n--;
    }
    return nums[0];
}
Time: O(n²) Space: O(1) in-place