๐ ๅๆ Offer 31. ๆ ็ๅๅ ฅใๅผนๅบๅบๅ
2022ๅนด10ๆ10ๆฅ
- algorithm
๐ ๅๆ Offer 31. ๆ ็ๅๅ ฅใๅผนๅบๅบๅ
้พๅบฆ: ๐
้ฎ้ขๆ่ฟฐ
่งฃๆณ
class Solution {
public boolean validateStackSequences(int[] pushed, int[] popped) {
// ๆ่ทฏ๏ผ
// ๅๅฉ ๆ ๏ผๆจกๆๆ
ๆฏ
// ้ขๆๅทฒ็ป่ฏดๆไบๆๆๅ
็ด ๅไธๆณ็ญ๏ผๅ ๆญคๅชๆไธ็งๆ
ๅต
int len = pushed.length;
if(len == 0) {
return true;
}
LinkedList<Integer> stack = new LinkedList<>();
int i = 0;
int j = 0;
while(i < len && j < len) {
// System.out.println(pushed[i] + " : " + popped[j]);
int exp = popped[j]; // ๅฝๅ้่ฆๅผนๅบ็่็นๅผ
if(!stack.isEmpty() && stack.peek() == exp) {
stack.pop();
// i ++;
j ++;
} else if(pushed[i] == exp) {
i ++;
j ++;
} else {
// ๆ็ปญๅๆ
stack.push(pushed[i]);
i ++;
}
}
while(!stack.isEmpty()) {
int val = stack.pop();
int exp = popped[j];
// System.out.println(val + " " + exp);
if(val != exp) {
return false;
}
j ++;
}
return true;
}
}