Interview Question
SDE-2sCountry: India
Interview Type: Written Test
public class MaximumCardsToBuy {
static int buyMaximumCards(List<Integer> sisCards, int amount) {
if (amount == 0) {
return 0;
}
int result = 0;
int card = 1;
while (amount > 0 && card <= amount) {
if (!sisCards.contains(card) && amount >= card) {
result++;
amount -= card;
}
card++;
}
return result;
}
public static void main(String[] args) {
List<Integer> sisCards = Arrays.asList(2, 3, 5);
int amount = 7;
System.out.println(buyMaximumCards(sisCards, amount));
sisCards = Arrays.asList();
amount = 10;
System.out.println(buyMaximumCards(sisCards, amount));
sisCards = Arrays.asList(2, 3, 5, 10);
amount = 17;
System.out.println(buyMaximumCards(sisCards, amount));
}
}
public class MaximumCardsToBuy {
static int buyMaximumCards(List<Integer> sisCards, int amount) {
if (amount == 0) {
return 0;
}
int result = 0;
int card = 1;
while (amount > 0 && card <= amount) {
if (!sisCards.contains(card) && amount >= card) {
result++;
amount -= card;
}
card++;
}
return result;
}
public static void main(String[] args) {
List<Integer> sisCards = Arrays.asList(2, 3, 5);
int amount = 7;
System.out.println(buyMaximumCards(sisCards, amount));
sisCards = Arrays.asList();
amount = 10;
System.out.println(buyMaximumCards(sisCards, amount));
sisCards = Arrays.asList(2, 3, 5, 10);
amount = 17;
System.out.println(buyMaximumCards(sisCards, amount));
}
}
Assuming the card array is not already sorted..
Output:
- adr September 21, 2019