Optimizing boolean checking method
Premature optimization is a bad idea.  Before you try to optimize anything, run a profiler to measure where your bottlenecks are.  Unless you are running this function in a tight loop, it's unlikely that this function will be a bottleneck.

The special cases that you would introduce don't come for free:


The more line of code you write, the more bugs you are likely to have, statistically.
Your unit tests also have to address the special cases.
There is a bit of overhead in checking whether your special cases apply.


Taking all that into consideration, it's almost certainly not worthwhile to add special cases.



The assertion assert args.length &gt; 0 might be inappropriate.  Considering this code in a vacuum, there is nothing to guarantee that that assertion is logically true.  Rather, it's a runtime validation check.  Validation failures should throw an IllegalArgumentException.  They shouldn't be assertion failures.  (Assertions can be disabled, defeating your check.)

If this were a non-public method, and you are sure that you've written your code such that all call sites have at least two arguments, then an assertion might be appropriate.

Here's a philosophical question: should checkNTrue(0) be true or false?  I think it should be true.