LeetCode # 455
Example 1:
Input:
g = [1,2,3], s = [1,1]
Output: 1
Explanation:
You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3. And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content. You need to output 1.
Example 2:
Input:
g = [1,2], s = [1,2,3]
Output: 2
Explanation:
You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2. You have 3 cookies and their sizes are big enough to gratify all of the children, You need to output 2.
Note:
- 1 <= g.length <= 3 * 10⁴
- 0 <= s.length <= 3 * 10⁴
- 1 <= g[i], s[j] <= 2³¹ - 1
Solution #1 (6ms)
class Solution {
public int findContentChildren(int[] g, int[] s) {
if (s.length == 0) return 0;
Arrays.sort(g);
Arrays.sort(s);
int i = g.length - 1, j = s.length - 1;
int result = 0;
while (i >= 0 && j >= 0) {
if (g[i] <= s[j]) {
result++;
i--;
j--;
} else {
i--;
}
}
return result;
}
}
Result #1
💡 Arrays.sort() 를 이용하여 오름차순 정렬을 한다. 배열 g 의 값이 배열 s 값보다 작을 경우의 개수를 구한다.
오름차순 정렬을 하고, 배열 g 의 현재 인덱스 값 i 와 배열 s 의 현재 인덱스 값 j 를 각 배열의 길이 -1 값으로 초기화한다.
g[i] 값이 s[j] 값보다 작거나 같을 경우, 개수를 증가시키고, 인덱스 값 i, j 를 각각 1씩 감소시킨다.
만약 g[i] 값이 s[j] 값보다 클 경우, 인덱스 값 i 만 1을 감소시킨다.
More Algorithm!
👇👇
github.com/ggujangi/ggu.leet-code
출처 : leetCode
'LeetCode > Easy' 카테고리의 다른 글
[Java] LeetCode 561 : Array Partition I (0) | 2021.05.14 |
---|---|
[Java] LeetCode 441 : Arranging Coins (0) | 2021.05.14 |
[Java] LeetCode 989 : Add to Array-Form of Integer (0) | 2021.05.13 |
[Java] LeetCode 415 : Add Strings (0) | 2021.05.12 |
[Java] LeetCode 258 : Add Digits (0) | 2021.05.12 |