文章目录

  • 一、题目
  • 二、解题思路
  • 三、参考代码
  • 四、参考资料

一、题目

1006. 笨阶乘


二、解题思路

参考了LeetCode的官方题解
根据栈后进先出的特性,位于栈顶上方的数总是最新的,我们每次取新的数做运算时,要和最新的结果做运算,也就是栈顶的数。
再考虑到乘除运算的优先级,我们可以在遇到

  • 乘除符号时将它与栈顶的数做乘除运算,并将结果压入栈中;
  • 加减符号时:如果是加号,直接将其压入栈中;如果是减号,将其相反数压入栈中;

这样在我们取完所有的数后,栈中所有的数只剩下加法运算。要得到最终的结果,只需将栈中的数全部相加即可。


三、参考代码

public static int clumsy(int N) {Stack<Integer> s = new Stack<>();// 开始的第一个数前面假设有加号s.push(N);N--;// index用来记录当前运算符是1:‘*’、2:‘/’、3:‘+’或4:'-'int index = 1;while (N > 0) {switch (index) {case 1:s.push(s.pop() * N);index = 2;break;case 2:s.push(s.pop() / N);index = 3;break;case 3:s.push(N);index = 4;break;case 4:s.push(-N);index = 1;break;}N--;}int res = 0;while (!s.isEmpty()) {res += s.pop();}return res;}

四、参考资料

详情请见文中链接,如有侵权,请联系我删除,谢谢!
如有不当之处,还请大家指出。

LeetCode 1006.笨阶乘相关推荐

  1. leetcode 1006. 笨阶乘

    通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积.例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1. 相反,我们设计了一个 ...

  2. 4月你好,愚人节果然是笨人,【LeetCode每日一题】1006. 笨阶乘

    4月你好,愚人节果然是笨人,[LeetCode每日一题]1006. 笨阶乘 今日题目1006题,每日一题微信交流群可以点击右下角:合作转载->联系我,拉你入群. 目前每日一题两个群,每天推送题目 ...

  3. LeetCode 每日一题1006. 笨阶乘

    1006. 笨阶乘 通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积.例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1. ...

  4. 力扣1006笨阶乘问题

    这里写目录标题 问题描述 常规解法 优化解法 问题描述 通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积.例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 ...

  5. leetcode 笨阶乘

    笨阶乘 通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积.例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1. 相反,我们设 ...

  6. 每日一题:leetcode1006.笨阶乘

    题目描述 题目分析 因为顺序一定且没有括号,所以逻辑很简单.我们要顺序处理的矛盾在于,减号后面会再出现乘法和除法,我们不妨将对乘法和除法用一个临时值进行计算,计算结束后再合并到值里面,一般来讲乘法和除 ...

  7. 【Leetcode - 172】阶乘后的零(思维)

    给定一个整数 n ,返回 n! 结果中尾随零的数量. 提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 示例 1: 输入:n = 3 输出:0 解释:3! ...

  8. leetcode 栈 II

    栈 880. 索引处的解码字符串 895. 最大频率栈 901. 股票价格跨度 907. 子数组的最小值之和 921. 使括号有效的最少添加 946. 验证栈序列 962. 最大宽度坡* 1003. ...

  9. LeetCode 700题 题解答案集合 Python

    2019.5.12更新至题号796,目前共有265题. 2019.5.26更新至题号72, 目前共有347题. 2019.6.16更新至题号70,目前共有382题. 2019.7.7更新至题号5120 ...

最新文章

  1. 浅议Windows 2000/XP Pagefile组织管理
  2. 同一公司代码下工厂间的库存转储 (轉載)
  3. sql2005主从数据库同步配置
  4. O(n)算法得到数组中第k大的数字
  5. koa --- seesion实现登录鉴权
  6. java url dns_JAVA反序列化-ysoserial-URLDNS
  7. UniDrop:一种简单而有效的Transformer提升技术
  8. 在ubuntu上安装微博AIR
  9. 智慧工厂数字化生产管理系统软件
  10. ppt转html5原理,如何实现PPT转成H5?
  11. 微信小程序: wx:key详解
  12. 使用setBounds()函数设置Java布局
  13. AcWing每日一题 1934贝茜放慢脚步
  14. asyncio+aiohttp异步免费代理池(已失效)
  15. 数栈产品分享:干货解读数据中台产品「模块化」设计思路
  16. 基于abaqus的各向异性材料的抗拔力学性能分析
  17. 在Keil 5上配置ST-Link下载器的方法 Windows 10
  18. 漫画:脑筋急转弯题目(尼姆问题求解)
  19. 手机拍照要注意光线问题
  20. 2020计算机二级考试题库(含答案)

热门文章

  1. 算法设计与分析——Johnson Trotter算法
  2. ffmpeg去除水印
  3. CISSP考试要求里的“应用密码学”内容辅助记忆趣味串讲
  4. 如何在高压系统中实现电源和信号线的电气隔离
  5. JAVA面试-系统设计题
  6. 堆排序、归并排序、快速排序
  7. jQuery入门选择器
  8. BLE-1の蓝牙4.0协议栈概览
  9. 果然是WIFI引起局域网速度慢
  10. matlab 自动生成陷波滤波器算法实现