题目 #
Given an integer array nums containing distinct positive integers, find and return any number from the array that is neither the minimum nor the maximum value in the array, or -1 if there is no such number.
Return the selected integer.
Example 1:
Input: nums = [3,2,1,4]
Output: 2
Explanation: In this example, the minimum value is 1 and the maximum value is 4. Therefore, either 2 or 3 can be valid answers.
Example 2:
Input: nums = [1,2]
Output: -1
Explanation: Since there is no number in nums that is neither the maximum nor the minimum, we cannot select a number that satisfies the given condition. Therefore, there is no answer.
Example 3:
Input: nums = [2,1,3]
Output: 2
Explanation: Since 2 is neither the maximum nor the minimum value in nums, it is the only valid answer.
Constraints:
- 1 <= nums.length <= 100
- 1 <= nums[i] <= 100
- All values in nums are distinct
思路1 前3个数一定有答案 #
分析 #
- 小于等于2肯定没答案,题目条件,数字互不相同,那么前三个数中一定有一个在中间
- 排序前三个即可,取第二个
代码 #
1func findNonMinOrMax(nums []int) int {
2 if len(nums) <= 2 {
3 return -1
4 }
5 sort.Ints(nums[:3])
6 return nums[1]
7}