我有两个Stacks 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 = i 中的任何整数x2,则方法将返回true
答案 0 :(得分:1)
我假设你的意思是s1中的任何数字+ s2中的任何数字都是给定的整数i。
如果是的话,
(在任何时候,如果一个堆栈是空的,你就完成了 - 没有答案)
编辑:根据你的排序顺序,我认为第4步我错了 - 但这个基本想法应该很接近。