dsa/Greedy/AssignCookies.java

64 lines
1.9 KiB
Java

import java.util.*;
class Solution {
public int findContentChildren(int[] greedyChildren, int[] cookieSize) {
Arrays.sort(greedyChildren);
Arrays.sort(cookieSize);
int child = 0, cookie = 0, contentChildren = 0;
while (child < greedyChildren.length && cookie < cookieSize.length) {
if (cookieSize[cookie] >= greedyChildren[child]) {
contentChildren++;
child++;
cookie++;
} else {
cookie++;
}
}
return contentChildren;
}
}
public class Main {
public static void main(String[] args) {
Solution sol = new Solution();
// Case 1: Basic case
int[] g1 = {1, 2, 3};
int[] s1 = {1, 1};
System.out.printf("Case 1 (Basic): %d%n",
sol.findContentChildren(g1, s1));
// Case 2: Enough cookies
int[] g2 = {1, 2};
int[] s2 = {1, 2, 3};
System.out.printf("Case 2 (Enough cookies): %d%n",
sol.findContentChildren(g2, s2));
// Case 3: No cookies
int[] g3 = {1, 2, 3};
int[] s3 = {};
System.out.printf("Case 3 (No cookies): %d%n",
sol.findContentChildren(g3, s3));
// Case 4: Cookies too small
int[] g4 = {2, 3, 4};
int[] s4 = {1, 1, 1};
System.out.printf("Case 4 (Cookies too small): %d%n",
sol.findContentChildren(g4, s4));
// Case 5: Unsorted input
int[] g5 = {4, 1, 2};
int[] s5 = {2, 1, 3};
System.out.printf("Case 5 (Unsorted input): %d%n",
sol.findContentChildren(g5, s5));
// Case 6: No children
int[] g6 = {};
int[] s6 = {1, 2, 3};
System.out.printf("Case 6 (No children): %d%n",
sol.findContentChildren(g6, s6));
}
}