פתרון בשפת Java
public static boolean twoSum(Queue<Integer> q , int x)
{
while( !q.isEmpty() )
{
int first = q.remove();
for(int i=0; i< q.size();i++)
{
int second = q.remove();
if( first + second == x)
return true;
q.insert(second);
}
}
return false;
}
סיבוכיות זמן ריצה:
n - מספר האיברים בתור.
הסיבוכיות היא oN^2 מכיוון שאנחנו עוברים על כך זוגות האיברים בתור. בעצם אנחנו מבצעים לולאה בתוך לולאה. הלולאה החיצונית (while) מתבצעת n פעמים, ואילו הלולאה הפנימית מתבצעת בסדרה יורדת של 1, כאשר בפעם הראשונה היא n-1.