[Leetcode] 2733. Neither Minimum nor Maximum (Easy)

概述

題目

https://leetcode.com/problems/neither-minimum-nor-maximum/
給定一數組,隨意回傳一個其中的數字但不是 min 也不是 max,若沒有則回傳 -1

心得

找到非 min, max 後回傳餘下隨意數,不然就 -1

Set

思路

先找 min, max,同時建立 set,若 set 中數量小於 3 則表無 min, max 以外數,回傳 -1,否則隨意回傳非 min, max 數

程式

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution(object):
def findNonMinOrMax(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
mxv, mnv = max(nums), min(nums)
ast = set(nums)
if len(ast) < 3:
return -1
for c in ast:
if c not in [mnv, mxv]:
return c

Complexity

Time Complexity: O(n)
n 個數走常數次

Space Complexity: O(n)
Set 最多記錄 n 個數資訊

Sort

思路

排序後確認

程式

1
2
3
4
5
6
7
8
9
10
class Solution(object):
def findNonMinOrMax(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
srt = sorted(nums)
if len(nums) < 3:
return -1
return srt[1]

Complexity

Time Complexity: O(n log(n))
Sort 佔 n log(n)

Space Complexity: O(n)
Set 最多記錄 n 個數資訊