Please solve the programming task below using a self-contained code snippet in a markdown code block.

Given two arrays nums1 and nums2.
Return the maximum dot product between non-empty subsequences of nums1 and nums2 with the same length.
A subsequence of a array is a new array which is formed from the original array by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, [2,3,5] is a subsequence of [1,2,3,4,5] while [1,5,3] is not).
 
Please complete the following python code precisely:
```python
class Solution:
    def maxDotProduct(self, nums1: List[int], nums2: List[int]) -> int:
```