This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
The requirements are not clear with respect to trimming the criteria, so I guess you should just do what feels right to you. In my implementation I chose not to trim the criteria, because that might yield unwanted results for the user, consider the following case: