当前位置: 首页 > news >正文

力扣Hot100每日N题(15~16)

155. 最小栈

class MinStack {private Deque<Integer> st;private Deque<Integer> minSt;public MinStack() {st = new LinkedList<>();minSt =  new LinkedList<>();}public void push(int val) {st.offerLast(val);if(!minSt.isEmpty()) minSt.offerLast(Math.min(val, getMin()));else minSt.offerLast(val);}public void pop() {st.removeLast();minSt.removeLast();}public int top() {return st.peekLast();}public int getMin() {return minSt.peekLast();}
}/*** Your MinStack object will be instantiated and called as such:* MinStack obj = new MinStack();* obj.push(val);* obj.pop();* int param_3 = obj.top();* int param_4 = obj.getMin();*/

152. 乘积最大子数组

动态规划版

class Solution {public int maxProduct(int[] nums) {int n = nums.length, ans = nums[0];int ma = nums[0], mi = nums[0];for(int i = 1; i < n; i++){int x = ma*nums[i], y = mi*nums[i];ma = Math.max(nums[i], Math.max(x, y));mi = Math.min(nums[i], Math.min(x, y));ans = Math.max(ans, ma);}return ans;}
}

贪心版
区间一定不会包含0(除非全0)
枚举每个不包含0的区间即可

class Solution {public int maxProduct(int[] nums) {int ans = Integer.MIN_VALUE, pre = 1, suf = 1, n = nums.length;for(int i = 0, j = n-1; i < n; i++, j--){pre *= nums[i];suf *= nums[j];ans = Math.max(Math.max(ans, nums[i]), Math.max(pre, suf));if(nums[i] == 0) pre = 1;if(nums[j] == 0) suf = 1;}return ans;}
}
http://www.dtcms.com/a/249605.html

相关文章:

  • sqli-labs靶场46-53关(综合)
  • 拆解 CMS/G1/ZGC 三种垃圾回收器算法过程
  • Python实战应用-Python操作MySQL数据库
  • leetcode2-两数相加
  • 【CF】Day84——Codeforces Round 862 (Div. 2) D (⭐树的直径的性质 + DFS找树的直径)
  • K8S中使用英伟达GPU
  • 在 CentOS中安装Docker并安装青龙脚本——笔记
  • Vue3 实现老虎机抽奖游戏
  • Spring AI Alibaba Graph 实践
  • 【AD笔记】嘉立创元件导入到AD中(原理图-pcd-3D模型)
  • Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程ES(四)查询、排序、分页、高亮
  • DBAPI如何实现API编排
  • Excel大厂自动化报表实战(互联网金融-数据分析周报制作下)
  • 仿飞书部门选择器
  • 【YOLO 系列】基于YOLO的车载摄像头道路标志和车辆目标检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
  • ELK 日志分析系统深度解析与实战指南
  • C++批量读取指定后缀文件
  • GTSAM中InitializePose3::initialize()使用详解
  • 介绍常见的图像和视频存储格式以及其优劣势
  • 大模型在颈椎管狭窄诊疗中的应用研究报告
  • 【驱动设计的硬件基础】串口
  • aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(三)
  • C++开源协程库async_simple有栈协程源码分析
  • Python 函数
  • linux驱动开发(9)- 信号量
  • 了解Redis的使用
  • 如何给Hexo-butterfly主题博客在复制时添加版权声明
  • Hive SQL:一小时快速入门指南
  • 读取配置文件到Settings对象的完整实现
  • 【AS32系列MCU调试教程】驱动开发:AS32驱动库的集成与应用实例