| 模型 | 模型答案 | 正确答案 |
|---|---|---|
| 金声玉亮2.0 | ```python from typing import List class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: from collections import defaultdict left = 0 max_length = 0 count = defaultdict(int) for right in range(len(nums)): count[nums[right]] += 1 while count[nums[right]] > k: count[nums[left]] -= 1 if count[nums[left]] == 0: del count[nums[left]] left += 1 max_length = max(max_length, right - left + 1) return max_length ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| deepseek-r1 | ```python from collections import defaultdict from typing import List class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: count = defaultdict(int) max_len = 0 left = 0 for right, num in enumerate(nums): count[num] += 1 while count[num] > k: left_num = nums[left] count[left_num] -= 1 left += 1 current_len = right - left + 1 if current_len > max_len: max_len = current_len return max_len ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| gpto1 | ```python class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: from collections import defaultdict counts = defaultdict(int) over_k_counts = 0 left = 0 max_len = 0 for right in range(len(nums)): num = nums[right] counts[num] += 1 if counts[num] == k + 1: over_k_counts += 1 while over_k_counts > 0: num_left = nums[left] if counts[num_left] == k + 1: over_k_counts -= 1 counts[num_left] -= 1 left += 1 max_len = max(max_len, right - left + 1) return max_len ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| gpt-4o-2024-08-06 | ```python from typing import List from collections import defaultdict class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: left = 0 max_length = 0 freq = defaultdict(int) for right in range(len(nums)): freq[nums[right]] += 1 while freq[nums[right]] > k: freq[nums[left]] -= 1 left += 1 max_length = max(max_length, right - left + 1) return max_length ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| DeepSeek-Coder-V2-Lite-Instruct | ```python from typing import List from collections import defaultdict class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: left = 0 freq = defaultdict(int) max_length = 0 for right in range(len(nums)): freq[nums[right]] += 1 while freq[nums[right]] > k: freq[nums[left]] -= 1 left += 1 max_length = max(max_length, right - left + 1) return max_length ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| Meta-Llama-3.1-405B-Instruct-Turbo | ```python from typing import List from collections import defaultdict class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: count = defaultdict(int) left = 0 max_length = 0 for right, num in enumerate(nums): count[num] += 1 while count[num] > k: count[nums[left]] -= 1 if count[nums[left]] == 0: del count[nums[left]] left += 1 max_length = max(max_length, right - left + 1) return max_length ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| Meta-Llama-3.1-70B-Instruct-Turbo | ```python from typing import List from collections import defaultdict class Solution: def longestSubarray(self, nums: List[int], k: int) -> int: freq = defaultdict(int) left = 0 max_length = 0 for right, num in enumerate(nums): freq[num] += 1 while freq[num] > k: freq[nums[left]] -= 1 if freq[nums[left]] == 0: del freq[nums[left]] left += 1 max_length = max(max_length, right - left + 1) return max_length ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| Qwen2-72B-Instruct | ```python from collections import Counter class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: left = 0 max_length = 0 freq = Counter() for right in range(len(nums)): freq[nums[right]] += 1 while freq[nums[right]] > k: freq[nums[left]] -= 1 left += 1 max_length = max(max_length, right - left + 1) return max_length ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| baichuan4 | ```python from collections import defaultdict class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: # Initialize variables max_length = 0 count = defaultdict(int) left = 0 # Iterate over the array for right, value in enumerate(nums): # Increment the count of the current element count[value] += 1 # While the frequency of any element exceeds k, move the left pointer while any(freq > k for freq in count.values()): count[nums[left]] -= 1 if count[nums[left]] == 0: del count[nums[left]] left += 1 # Update the maximum length found so far max_length = max(max_length, right - left + 1) return max_length ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| doubao | ```python class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: count = {} left = 0 max_length = 0 for right in range(len(nums)): if nums[right] in count: count[nums[right]] += 1 else: count[nums[right]] = 1 while max(count.values()) > k: count[nums[left]] -= 1 if count[nums[left]] == 0: del count[nums[left]] left += 1 max_length = max(max_length, right - left + 1) return max_length ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| gpto1 | ```python class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: from collections import defaultdict counts = defaultdict(int) over_k_counts = 0 left = 0 max_len = 0 for right in range(len(nums)): num = nums[right] counts[num] += 1 if counts[num] == k + 1: over_k_counts += 1 while over_k_counts > 0: num_left = nums[left] if counts[num_left] == k + 1: over_k_counts -= 1 counts[num_left] -= 1 left += 1 max_len = max(max_len, right - left + 1) return max_len ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| kimi | ```python class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: count = {} left = 0 max_len = 0 for right in range(len(nums)): count[nums[right]] = count.get(nums[right], 0) + 1 while count[nums[right]] > k: count[nums[left]] -= 1 left += 1 max_len = max(max_len, right - left + 1) return max_len ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| minimax | ```python from typing import List class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: # Dictionary to store the last index of each frequency count freq_index = {} max_length = 0 left = 0 freq = 0 for right in range(len(nums)): # Increase the frequency count for the current number freq += 1 # If the frequency count exceeds k, move the left pointer while freq > k: freq -= 1 left += 1 # Update the maximum length if the current window is larger max_length = max(max_length, right - left + 1) # If the current frequency count has been seen before, # try to extend the window by moving the left pointer if freq in freq_index: max_length = max(max_length, right - freq_index[freq] + 1) # Update the last index of the current frequency count freq_index.setdefault(freq, right) return max_length # Example usage: # sol = Solution() # print(sol.maxSubarrayLength([1,2,3,1 |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| wenxinyiyan | ```python from collections import Counter from typing import List class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: left = 0 max_length = 0 freq_counter = Counter() for right in range(len(nums)): freq_counter[nums[right]] += 1 # Contract the window from the left if the frequency of any element exceeds k while any(value > k for value in freq_counter.values()): freq_counter[nums[left]] -= 1 if freq_counter[nums[left]] == 0: del freq_counter[nums[left]] left += 1 # Update the maximum length of the good subarray max_length = max(max_length, right - left + 1) return max_length ``` Explanation: The solution uses a sliding window approach to find the longest good subarray. The `left` and `right` pointers define the current subarray being considered. The `freq_counter` dictionary keeps track of the frequency of each element within the current subarray. We iterate through the `nums` array using the `right` pointer and update the frequency of the current element in `freq_counter`. If the frequency of any element exceeds `k`, we contract the window from the left by moving the `left` pointer and decrementing the frequency of the element at that position in `freq_counter`. If the frequency becomes zero, we remove the element from `freq_counter` to maintain efficiency. After each iteration, we update the `max_length` variable with the maximum length of the good subarray encountered so far. Finally, we return `max_length` as the result. This approach ensures that we only consider subarrays that satisfy the good subarray condition, and we keep track of the maximum length of such subarrays encountered during the traversal. |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| zhipu | ```python from collections import defaultdict class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: left = 0 max_length = 0 freq_map = defaultdict(int) for right in range(len(nums)): freq_map[nums[right]] += 1 while freq_map[nums[right]] > k: freq_map[nums[left]] -= 1 left += 1 max_length = max(max_length, right - left + 1) return max_length ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |
| deepseek-v3 | ```python from collections import defaultdict class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: freq = defaultdict(int) left = 0 max_len = 0 for right in range(len(nums)): freq[nums[right]] += 1 while freq[nums[right]] > k: freq[nums[left]] -= 1 left += 1 max_len = max(max_len, right - left + 1) return max_len ``` |
[{"input": "[1, 2, 3, 1, 2, 3, 1, 2]\n2", "output": "6", "testtype": "functional"}, {"input": "[1, 2, 1, 2, 1, 2, 1, 2]\n1", "output": "2", "testtype": "functional"}, {"input": "[5, 5, 5, 5, 5, 5, 5]\n4", "output": "4", "testtype": "functional"}] |