Given an integer array nums, return true if there exists a triple of indices (i, j, k) such that i < j < k and nums[i] < nums[j] < nums[k]. If no such indices exists, return false.
class Solution: def increasingTriplet(self, nums: List[int]) -> bool: for i in range(len(nums)-2): if nums[i] < nums[i+1] and nums[i+1] < nums[i+2]: return True return False
처음엔 그냥 3연속이면 되는건가 쉽네 했는데 아녔음 ㅎ
class Solution:
def increasingTriplet(self, nums: List[int]) -> bool:
for i in range(len(nums)-2):
numlist = []
for j in range(i+1, len(nums)):
if nums[i] < nums[j]:
numlist.append(nums[j])
for j in range(len(numlist)-1):
if numlist[j] < numlist[j+1]:
return True
return False
7퍼 런타임의 주인공 이중 for 문..^^
numlist[j] < numlist[j+1]
가 있으면 True 리턴딕셔너리를 써서도 해보려했지만.. 드러워짐
class Solution:
def increasingTriplet(self, nums: List[int]) -> bool:
f_min = float('inf')
s_min = float('inf')
for i in range(len(nums)):
if nums[i] <= f_min:
f_min = nums[i]
elif nums[i] <= s_min:
s_min = nums[i]
else:
return True
return False
f_min 과 s_min 에 무한대 값으로 초기화한 후 first, second 최솟값 찾기