mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
43 lines
2.3 KiB
HTML
43 lines
2.3 KiB
HTML
|
<p>给你一个下标从 <strong>0</strong> 开始长度为 <code>n</code> 的整数数组 <code>nums</code> ,和一个下标从 <code>0</code> 开始长度为 <code>m</code> 的整数数组 <code>pattern</code> ,<code>pattern</code> 数组只包含整数 <code>-1</code> ,<code>0</code> 和 <code>1</code> 。</p>
|
|||
|
|
|||
|
<p>大小为 <code>m + 1</code> 的<span data-keyword="subarray">子数组</span> <code>nums[i..j]</code> 如果对于每个元素 <code>pattern[k]</code> 都满足以下条件,那么我们说这个子数组匹配模式数组 <code>pattern</code> :</p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li>如果 <code>pattern[k] == 1</code> ,那么 <code>nums[i + k + 1] > nums[i + k]</code></li>
|
|||
|
<li>如果 <code>pattern[k] == 0</code> ,那么 <code>nums[i + k + 1] == nums[i + k]</code></li>
|
|||
|
<li>如果 <code>pattern[k] == -1</code> ,那么 <code>nums[i + k + 1] < nums[i + k]</code></li>
|
|||
|
</ul>
|
|||
|
|
|||
|
<p>请你返回匹配 <code>pattern</code> 的 <code>nums</code> 子数组的 <strong>数目</strong> 。</p>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><strong class="example">示例 1:</strong></p>
|
|||
|
|
|||
|
<pre>
|
|||
|
<b>输入:</b>nums = [1,2,3,4,5,6], pattern = [1,1]
|
|||
|
<b>输出:</b>4
|
|||
|
<b>解释:</b>模式 [1,1] 说明我们要找的子数组是长度为 3 且严格上升的。在数组 nums 中,子数组 [1,2,3] ,[2,3,4] ,[3,4,5] 和 [4,5,6] 都匹配这个模式。
|
|||
|
所以 nums 中总共有 4 个子数组匹配这个模式。
|
|||
|
</pre>
|
|||
|
|
|||
|
<p><strong class="example">示例 2:</strong></p>
|
|||
|
|
|||
|
<pre>
|
|||
|
<b>输入:</b>nums = [1,4,4,1,3,5,5,3], pattern = [1,0,-1]
|
|||
|
<b>输出:</b>2
|
|||
|
<strong>解释:</strong>这里,模式数组 [1,0,-1] 说明我们需要找的子数组中,第一个元素小于第二个元素,第二个元素等于第三个元素,第三个元素大于第四个元素。在 nums 中,子数组 [1,4,4,1] 和 [3,5,5,3] 都匹配这个模式。
|
|||
|
所以 nums 中总共有 2 个子数组匹配这个模式。
|
|||
|
</pre>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><strong>提示:</strong></p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li><code>2 <= n == nums.length <= 100</code></li>
|
|||
|
<li><code>1 <= nums[i] <= 10<sup>9</sup></code></li>
|
|||
|
<li><code>1 <= m == pattern.length < n</code></li>
|
|||
|
<li><code>-1 <= pattern[i] <= 1</code></li>
|
|||
|
</ul>
|