mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
52 lines
2.0 KiB
HTML
52 lines
2.0 KiB
HTML
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 。</p>
|
||
|
||
<p>定义 <code>nums</code> 一个子数组的 <strong>不同计数</strong> 值如下:</p>
|
||
|
||
<ul>
|
||
<li>令 <code>nums[i..j]</code> 表示 <code>nums</code> 中所有下标在 <code>i</code> 到 <code>j</code> 范围内的元素构成的子数组(满足 <code>0 <= i <= j < nums.length</code> ),那么我们称子数组 <code>nums[i..j]</code> 中不同值的数目为 <code>nums[i..j]</code> 的不同计数。</li>
|
||
</ul>
|
||
|
||
<p>请你返回 <code>nums</code> 中所有子数组的 <strong>不同计数</strong> 的 <strong>平方</strong> 和。</p>
|
||
|
||
<p>由于答案可能会很大,请你将它对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 后返回。</p>
|
||
|
||
<p>子数组指的是一个数组里面一段连续 <strong>非空</strong> 的元素序列。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>nums = [1,2,1]
|
||
<b>输出:</b>15
|
||
<b>解释:</b>六个子数组分别为:
|
||
[1]: 1 个互不相同的元素。
|
||
[2]: 1 个互不相同的元素。
|
||
[1]: 1 个互不相同的元素。
|
||
[1,2]: 2 个互不相同的元素。
|
||
[2,1]: 2 个互不相同的元素。
|
||
[1,2,1]: 2 个互不相同的元素。
|
||
所有不同计数的平方和为 1<sup>2</sup> + 1<sup>2</sup> + 1<sup>2</sup> + 2<sup>2</sup> + 2<sup>2</sup> + 2<sup>2</sup> = 15 。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>nums = [2,2]
|
||
<b>输出:3</b>
|
||
<strong>解释:</strong>三个子数组分别为:
|
||
[2]: 1 个互不相同的元素。
|
||
[2]: 1 个互不相同的元素。
|
||
[2,2]: 1 个互不相同的元素。
|
||
所有不同计数的平方和为 1<sup>2</sup> + 1<sup>2</sup> + 1<sup>2</sup> = 3 。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= nums.length <= 100</code></li>
|
||
<li><code>1 <= nums[i] <= 100</code></li>
|
||
</ul>
|