牛客题霸 [子数组最大乘积] C++题解/答案

题目描述

给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。

题解:

同时记录最大值和最小值,为什么?因为给的元素是存在负数的,当出现负数时,最大值会变成最小值,而最小值也会翻身成最大值,所以要同时记录,每次最最大情况

代码:

class Solution {public:double maxProduct(vector<double> arr) {double ansmin = 1,ansmax = 1;double result = arr[0];for (int i = 0; i < arr.size() ; i++) {if (arr[i] < 0)swap(ansmin,ansmax);ansmin = min(ansmin * arr[i],arr[i]);ansmax = max(ansmax * arr[i],arr[i]);result = max(result,ansmax);}return result;}
};

牛客题霸 [子数组最大乘积] C++题解/答案相关推荐

  1. 牛客题霸 [子数组的最大累加和问题] C++题解/答案

    牛客题霸 [子数组的最大累加和问题] C++题解/答案 题目描述 给定一个数组arr,返回子数组的最大累加和 例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, ...

  2. 牛客题霸 [ 最长公共前缀] C++题解/答案

    牛客题霸 [ 最长公共前缀] C++题解/答案 题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 题解: 原本想暴力做,直接多层循环套,发现并不用 注意本题,给出了多组字符串,求它们的最长公共 ...

  3. 牛客题霸 [滑动窗口的最大值] C++题解/答案

    牛客题霸 [滑动窗口的最大值] C++题解/答案 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一 ...

  4. 牛客题霸 [最长重复子串] C++题解/答案

    牛客题霸 [最长重复子串] C++题解/答案 题目描述 一个重复字符串是由两个相同的字符串首尾拼接而成,例如abcabc便是长度为6的一个重复字符串,而abcba则不存在重复字符串. 给定一个字符串, ...

  5. 牛客题霸 [ 集合的所有子集] C++题解/答案

    牛客题霸 [ 集合的所有子集] C++题解/答案 题目描述 现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按升序排列 给出的解集中不能出现重复的元素 题解: 先s ...

  6. 牛客题霸 [容器盛水问题] C++题解/答案

    牛客题霸 [容器盛水问题] C++题解/答案 题目描述 给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水. 具体请参考样例解释 题解: 我们找出容器的左 ...

  7. 牛客题霸 [ 最小的K个数] C++题解/答案

    牛客题霸 [ 最小的K个数] C++题解/答案 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题解: 如果有n&l ...

  8. 牛客题霸 [最长公共子序列] C++题解/答案

    牛客题霸 [最长公共子序列] C++题解/答案 题目描述 给定两个字符串str1和str2,输出连个字符串的最长公共子序列.如过最长公共子序列为空,则输出-1. 题解: dp经典问题 代码: clas ...

  9. 牛客题霸 [ 最长递增子序列] C++题解/答案

    牛客题霸 [ 最长递增子序列] C++题解/答案 题目描述 给定数组arr,设长度为n,输出arr的最长递增子序列.(如果有多个答案,请输出其中字典序最小的) 题意: 直接暴力会超时 应该用二分+贪心 ...

最新文章

  1. Python TypeError: ‘int‘ object is not iterable
  2. 终于有人把云计算、物联网和大数据讲明白了!
  3. Geotools应用简要指南
  4. Linux下如何查看tomcat是否启动/系统日志等
  5. hdu2846 字典树(带id的)
  6. spring 七种事务
  7. Tomcat和IntelliJ –在webapps文件夹之外部署war文件
  8. Meanshift 均值飘移实现图像聚类 MATLAB实现(4)
  9. 微信小程序周报(第十一期)-极乐商店出品
  10. 【译】TetroGL: An OpenGL Game Tutorial in C++ for Win32 Platforms - Part 2 (上)
  11. 交错排列(Alternating Permutation)问题详解
  12. Renovate - preview
  13. CSS揭秘:5.条纹背景(上)
  14. 第三篇 香橙派的外设开发基础(中)— 串口篇
  15. 对浏览器内核的理解和常见的浏览器内核
  16. vivado中ZYNQ详解(主要用于PS和PL之间的工作衔接)
  17. jvm动态年龄计算规则以及为什么要这样做
  18. Android修改读写速度,技术宅 篇一:如何让旧安卓手机的速度重新飞一会儿(使用开发者选项)通过改设置加快速度...
  19. 初学Java常用设计模式之——装饰器模式
  20. 计算机签名数据大小时错误,看过来!介绍开机出现数字签名错误的具体解决步骤...

热门文章

  1. 东北大姐剪纸被误认为油画,遭人质疑二十多年,只因太过逼真,看完后:真香!不愧是天下第一剪!...
  2. 这才是真正的,坐上来,自己动!| 今日趣图
  3. 全球孩子迷恋手机/iPad,其实罪魁祸首是父母!
  4. 《SAS编程与数据挖掘商业案例》学习笔记之五
  5. ubuntu安装matlab2009,Ubuntu中安装Matlab2010a
  6. python小甲鱼爬虫妹子_【Python学习日记】B站小甲鱼:爬虫
  7. asp.net添加删除表格_如何用openpyxl自动化编写Excel电子表格
  8. python训练词库_在Python中训练NGramModel
  9. php mysql 执行sql文件_PHP执行SQL文件并将SQL文件导入到数据库_PHP
  10. js堆和栈的区别_几个例子理解不同数据类型的堆栈内存处理