LeetCode #496 NextGreaterElement1. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접, 데이터베이스, sql, query, 쿼리
Runtime: 8 ms, faster than 97.38% of C++ online submissions for Next Greater Element I.
Memory Usage: 8.9 MB, less than 100.00% of C++ online submissions for Next Greater Element I.
LeetCode #496
Q.
You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding places of nums2.
The Next Greater Number of a number x in nums1 is the first greater number to its right in nums2. If it does not exist, output -1 for this number.
두개의 정수 배열 num1, num2 가 있고 (중복되는 숫자가 없는), num1 은 num2 의 부분집합 값들이다.
num1 에 있는 모든 각 값에서, num1 의 값과 같은 num2 의 값 위치에서, 그 이후로 나오는 더 큰 수의 값을 찾아라.
num1 의 숫자값 x 의 다음번 큰 숫자는 num2 에서 오른쪽에 처음으로 나오는 더 큰 수 이다. 없으면 -1 을 내보낸다.
Example 1:
Input: nums1 = [4,1,2], nums2 = [1,3,4,2].
Output: [-1,3,-1]
Explanation: For number 4 in the first array, you cannot find the next greater number for it in the second array, so output -1. For number 1 in the first array, the next greater number for it in the second array is 3. For number 2 in the first array, there is no next greater number for it in the second array, so output -1.
Example 2:
Input: nums1 = [2,4], nums2 = [1,2,3,4].
Output: [3,-1]
Explanation: For number 2 in the first array, the next greater number for it in the second array is 3. For number 4 in the first array, there is no next greater number for it in the second array, so output -1.
Note:
- All elements in nums1 and nums2 are unique.
- The length of both nums1 and nums2 would not exceed 1000.
Process
// Process
//1. Input num1, num2 int vectors
//2.
// 처리과정
//1. 숫자배열 num1, num2 입력 받는다.
//2. num1 의 시작부터 끝까지 반복한다. (i)
// 2.1. num2 의 시작부터 끝까지 반복한다. (j)
// 2.1.1. num1[i] 의 값이 num2[j] 와 같은지 확인해서 같으면
// 2.1.2. 해당 j 위치 인덱스 찾아두고 반복 종료한다.
// 2.2. num2 j 위치부터 끝까지 반복한다. (j)
// 2.2.1. num1[i] 값보다 더 큰 값이 있으면
// 2.2.1.1. 결과값 배열에 값을 저장하고 반복 종료한다.
// 2.3. 더 큰값이 없었으면
// 2.3.1. 결과값 배열에 -1 값을 저장한다.
//3. 결과값 배열 반환한다.
Code.. lemme see example code!!!
코드.. 예제코드를 보자!!!
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
vector<int> resultVector;
for (int i = 0; i < nums1.size(); ++i) {
int temp = nums1[i];
bool isDone = false;
int j = 0;
while (!isDone && j < nums2.size()) {
if (temp == nums2[j]) {
isDone = true;
}
++j;
}
if (isDone) {
isDone = false;
while (!isDone && j < nums2.size()) {
if (temp < nums2[j]) {
isDone = true;
--j;
}
++j;
}
if (isDone)
resultVector.push_back(nums2[j]);
else
resultVector.push_back(-1);
}
}
return resultVector;
}
};
Something else you might like...?
2019/02/19 - [Life/Health care] - Lysine 라이신 usage/side effects/dosage 효과/효능/부작용/성인,소아 용법, 복용법
2019/02/28 - [Life/Health care] - Vitamin K, 비타민 K usage/side effects/dosage 효능/부작용/성인,소아 용법