Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- leetcode
- FastAPI
- 자바스크립트
- AWS
- asyncio
- elasticsearch
- Django
- Kubernetes
- Service
- Deployment
- AZ-104
- EC2
- Role
- POD
- terraform
- AZURE
- EKS
- asgi
- ebs
- ansible
- DevOps
- Python
- K8S
- AZ-900
- RBAC
- docker
- dockerfile
- IAC
- IAM
- Network
Archives
- Today
- Total
궁금한게 많은 개발자 노트
[ leetcode ] 334. Increasing Triplet Subsequence 본문
해당 문제는 숫자로 이루어진 배열에서, 서로 다른 인덱스 i, j, k가 i < j < k관계를 이루고, index에 존재하는 값도
nums[i] < nums[j] < nums[k]를 이루는 i, j, k가 존재하는지 여부를 판단하는 문제입니다.
연속성을 가질 필요는 없지만 해당 조건을 만족하기 위해서는 두 변수가 필요하고, 한 변수에는 가장 작은 값을 업데이트하고, 두 번째 변수에는 첫 변수보다 높은 값이 나타나면 업데이트, 그리고 세번째 아이템을 만났을 때 두번 째 변수보다 크다면 해당 조건을 만족하는 i, j, k가 존재한다는 의미입니다.
첫번째 변수가 채워졌는데 배열에서 다음 값이 더 작다면 다시 첫변수를 업데이트해주고, 더 크다면 두번째를 채우고, 두번째보다 더 큰 값이 나오면 조건을 만족한다고 반환합니다.
class Solution {
public:
bool increasingTriplet(vector<int>& nums) {
int one = INT_MAX, two = INT_MAX;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] <= one) one = nums[i];
else if (nums[i] <= two) two = nums[i];
else return true;
}
return false;
}
};
'Algorithm' 카테고리의 다른 글
[ leetcode ] 128. Longest Consecutive Sequence (0) | 2023.07.19 |
---|---|
[ leetcode ] 445. Add Two Numbers II (0) | 2023.07.17 |
[ leetcode ] 1218. Longest Arithmetic Subsequence of Given Difference (0) | 2023.07.14 |
[ leetcode ] 198. House Robber (0) | 2023.07.14 |
[ leetcode ] 207. Course Schedule (0) | 2023.07.14 |
Comments