פתרון בשפת 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.