如何比较O(n)中2个堆栈中的整数?

| 我有两个堆栈s1和s2。 s1包含负整数,而s2包含正整数。两个堆栈已经从最低值(在底部)到最高值(在顶部)进行了排序。 x1和x2是s1和s2中的整数。我想检查两个堆栈,看看是否[x1 + x2 =给定的整数i]。在O(n)中执行此操作的最佳方法是什么? 更新:x1和x2是整数..对不起 更新2:该方法返回一个布尔值,并将具有以下参数:
boolean method(Stack s1, Stack s2, int i)
如果s1中的任何整数x1 + s2中的任何整数x2 = i,则该方法将返回true     
已邀请:
        我假设您的意思是s1中的任何数字+ s2中的任何数字都是给定的整数i。 如果是这样的话, 从两个堆栈的顶部弹出 加入他们 他们等于我吗 是的->完成了 比我大吗? 是->然后,负数可以没有对应项,将其丢弃,从s1弹出下一个负数,转到2 NO->然后,正数可以没有对应对象,将其丢弃,从s2弹出下一个正数,转到2 (在任何时候,如果堆栈为空,您就完成了-没有答案) 编辑:根据您的排序顺序,我认为我在第4步上错了-但这个基本想法应该很接近。     

要回复问题请先登录注册