本题的bonus是
因此方法是queue的size 达到了K, 就停止增加元素,保证queue.size() 最大时只有k.
Java code:
import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; public class Subset { public static void main(String[] args){ int k = Integer.parseInt(args[0]); RandomizedQueue<String> queue = new RandomizedQueue<String>(); while(StdIn.hasNextLine() && !StdIn.isEmpty()) { if(queue.size() < k) { queue.enqueue(StdIn.readString()); }else { break; } } for(int i = 0; i< k; i++) { StdOut.println(queue.dequeue()); } } }