返回介绍

solution / 2700-2799 / 2733.Neither Minimum nor Maximum / README

发布于 2024-06-17 01:03:00 字数 3150 浏览 0 评论 0 收藏 0

2733. 既不是最小值也不是最大值

English Version

题目描述

给你一个整数数组 nums ,数组由 不同正整数 组成,请你找出并返回数组中 任一 既不是 最小值 也不是 最大值 的数字,如果不存在这样的数字,返回 -1

返回所选整数。

 

示例 1:

输入:nums = [3,2,1,4]
输出:2
解释:在这个示例中,最小值是 1 ,最大值是 4 。因此,2 或 3 都是有效答案。

示例 2:

输入:nums = [1,2]
输出:-1
解释:由于不存在既不是最大值也不是最小值的数字,我们无法选出满足题目给定条件的数字。因此,不存在答案,返回 -1 。

示例 3:

输入:nums = [2,1,3]
输出:2
解释:2 既不是最小值,也不是最大值,这个示例只有这一个有效答案。 

 

提示:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100
  • nums 中的所有数字互不相同

解法

方法一

class Solution:
  def findNonMinOrMax(self, nums: List[int]) -> int:
    return -1 if len(nums) < 3 else sorted(nums)[1]
class Solution {
  public int findNonMinOrMax(int[] nums) {
    int mi = 100, mx = 0;
    for (int x : nums) {
      mi = Math.min(mi, x);
      mx = Math.max(mx, x);
    }
    for (int x : nums) {
      if (x != mi && x != mx) {
        return x;
      }
    }
    return -1;
  }
}
class Solution {
public:
  int findNonMinOrMax(vector<int>& nums) {
    int mi = *min_element(nums.begin(), nums.end());
    int mx = *max_element(nums.begin(), nums.end());
    for (int x : nums) {
      if (x != mi && x != mx) {
        return x;
      }
    }
    return -1;
  }
};
func findNonMinOrMax(nums []int) int {
  mi, mx := slices.Min(nums), slices.Max(nums)
  for _, x := range nums {
    if x != mi && x != mx {
      return x
    }
  }
  return -1
}
impl Solution {
  pub fn find_non_min_or_max(nums: Vec<i32>) -> i32 {
    let mut mi = 100;
    let mut mx = 0;

    for &ele in nums.iter() {
      if ele < mi {
        mi = ele;
      }
      if ele > mx {
        mx = ele;
      }
    }

    for &ele in nums.iter() {
      if ele != mi && ele != mx {
        return ele;
      }
    }

    -1
  }
}

方法二

class Solution:
  def findNonMinOrMax(self, nums: List[int]) -> int:
    mi, mx = min(nums), max(nums)
    for x in nums:
      if x != mi and x != mx:
        return x
    return -1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文