难度中等

题目描述

image.png

解题思路

遇到乘除立即算,遇到加减先入栈
https://leetcode-cn.com/problems/clumsy-factorial/solution/fu-xue-ming-zhu-yu-dao-cheng-chu-li-ji-s-furg/

Code

  1. public int clumsy(int N) {
  2. Stack<Integer> stack = new Stack<>();
  3. int op = 0;
  4. int sum = 0;
  5. stack.push(N);
  6. for (int i = N - 1; i > 0; i--) {
  7. if (op == 0) {
  8. stack.push(stack.pop() * i);
  9. } else if (op == 1) {
  10. stack.push(stack.pop() / i);
  11. } else if (op == 2) {
  12. stack.push(i);
  13. } else {
  14. stack.push(-i);
  15. }
  16. op = (op + 1) % 4;
  17. }
  18. while (!stack.isEmpty()) {
  19. sum += stack.pop();
  20. }
  21. return sum;
  22. }