You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何找出数组中既非最大值也非最小值的元素?代码语法错误求助

问题分析与代码修正

原代码存在的问题

  • 错误使用input(nums):函数参数nums是传入的目标数组,不需要用input读取,直接遍历nums即可。
  • a = int()无意义:这行仅创建了一个值为0的整数,未关联到当前遍历的元素,逻辑完全错误。
  • 语法与逻辑错误:max()和min()必须传入可迭代对象(如nums),正确写法是max(nums)、min(nums);原条件判断的结构错误,应该判断当前元素不等于最大值且不等于最小值。
  • 循环冗余:for n in range(100)完全没必要,只需遍历输入数组nums中的元素。
  • 返回类型不匹配:函数标注返回int,但预期输出是列表,需修正为List[int]。

修正后的代码

from typing import List

class Solution:
    def findNonMinOrMax(self, nums: List[int]) -> List[int]:
        if len(nums) <= 2:
            return []  # 数组元素不足3个时,不存在符合条件的元素
        min_val = min(nums)
        max_val = max(nums)
        # 筛选出既非最大值也非最小值的元素
        result = [num for num in nums if num != min_val and num != max_val]
        return result

# 测试用例执行
solution = Solution()
print(solution.findNonMinOrMax([3, 1, 2, 4]))  # 输出: [2, 1]

修正逻辑说明

  1. 先判断数组长度:若元素少于3个,直接返回空列表(无法同时存在最大、最小及其他元素)。
  2. 提前计算最值:一次性算出数组的最大值和最小值,避免后续重复计算,提升效率。
  3. 列表推导式筛选:遍历数组,直接筛选出符合条件的元素,生成结果列表。

内容的提问来源于stack exchange,提问作者Data Scientist Muhammad Saad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 09:57:38