2015-06-18 109 views
0

所以這裏是我從實踐中工作的原始問題。編寫一個名爲isConsecutive的方法,接受一個整數的PriorityQueue作爲參數,如果隊列包含從隊列的前端開始的連續整數序列,則返回true。到目前爲止,我有以下幾點,但我遇到的主要問題是如何將「1」添加到對象以查看它們是否連續。與PriorityQueue一起執行。比較時如何對對象+1?

>

public static boolean isConsecutive(PriorityQueue o){ 
>   if(o.isEmpty()){ 
>    return true; 
>   } 
>   while(!(o.isEmpty())){ 
>    
>    if(o.poll() ==o.peek()){ 
>     return true; 
>    } 
>   } 
>   return false; 
>  } 
+0

如果你想從實踐中看到原來的問題它在這裏 - > [鏈接](http://practiceit.cs.washington.edu/problem.jsp?category=Building+Java+Programs%2C + 3rd +版本%2FBJP3 +章節+ 18&問題= bjp3-18-e10-是連續的) – Alex

回答

2

你的功能應該採取PriorityQueue<Integer>對象,而不是隻是一個普通的PriorityQueue。然後o.poll()o.peek()將返回Integer s而不是普通Object s。

一旦您有Integer s可以使用,您可以簡單地使用常規+運算符。

+0

哦,謝謝!不相信簡單的錯誤可以走很長的路。 – Alex