After selling goods all day, a salesman would like to determine the most desirable item in his inventory. You are given a String[] items, each element of which represents a single item that was sold during the day. Return the item that was sold the most number of times. In case of a tie, return the item that comes first alphabetically.
Definition
Class:
BestSeller
Method:
findBestSeller
Parameters:
String[]
Returns:
String
Method signature:
String findBestSeller(String[] items)
(be sure your method is public)
Constraints
-
items will contain between 1 and 50 elements, inclusive.
-
Each element of items will contain between 1 and 50 characters, inclusive.
-
Each element of items will contain only lowercase letters ('a'-'z').
The salesman sold two of each of these items: "icecream", "peanuts", and "chocolate". Since there is a tie, "chocolate" is returned because it comes first alphabetically. "apple" comes even earlier, but only tied items are considered.
3)
{"soul"}
Returns: "soul"
import java.util.Arrays;
public class BestSeller {
public static String findBestSeller(String[] items) {
Arrays.sort(items);
int max, maxi, count = 1;
max = maxi = 0;
for (int i = 1; i < items.length; i++) {
if (!items[i].equals(items[i-1])) {
if (count > max) {
max = count;
maxi = i - 1;
}
count = 1;
} else
count++;
}
return (count > max) ? items[items.length-1] : items[maxi];
}
}