题目描述

给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。

题目分析

这时一个很典型的动态规划题目,数组不一定是有序的,而且连续子序列中的符号也不一定一致,这是两点需要注意的,详细思路请见源代码。

源代码

class Solution {
public:int maxProduct(vector<int>& nums) {if(nums.empty()) return 0;int ret, pos, neg;pos = nums[0];neg = nums[0];ret = nums[0];for(int i = 1; i < nums.size(); i++){int temp = pos;//最大值乘以负数有可能变为最小值,最小值乘以负数有可能变为最大值pos = max(nums[i], max(pos * nums[i], neg * nums[i]));//在不断的计算最大值neg = min(nums[i], min(temp * nums[i], neg * nums[i]));//在不断的计算最小值ret = max(pos, ret);}return ret;}
};

给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。相关推荐

  1. 数组两个整数相加 c语言,作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)...

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值 输入 [1,3,5,7,9,11] 10 输出 1,9 3,7 代码: import java.util.HashMap; import ja ...

  2. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值输入 [1,3,5,7,9,11] 10输出 1,9 3,7 代码: import java.util.HashMap; import java ...

  3. leetcode:java.T018_4Sum---给定一个整数数组,找出a + b + c + d = target的唯一解,不能有重复元素组

    <span style="color:#ff4635">敬请关注博客,后期不断更新优质博文,谢谢</span> package leetcode.T018_ ...

  4. 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

    题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 ...

  5. 算法(17)定义一个整数数组,找出连续3个元素之和是最大的,并输出这三个元素。

    写在前面: 我是「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字.我热爱技术.热爱开源.热爱编程.技术是开源的.知识是共享的. 这博客是对自己学习的一点点总结及记录,如果您对 Java.算法 感兴 ...

  6. 698. 划分为k个相等的子集:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。

    题目描述 给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等. 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k ...

  7. 给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。

    问: /** 给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数 ...

  8. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标

    题目链接:https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-2/ 给定一个整数数组 nums ...

  9. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使用两遍. ...

  10. 34. 在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标

    34. 在排序数组中查找元素的第一个和最后一个位置 难度中等2012 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target.请你找出给定目标值在数组中的开始位置和结束位置. 如果 ...

最新文章

  1. 浅析 VO、DTO、DO、PO 的概念、区别和用处!
  2. python制作工资计算器-Python计算个人所得税
  3. 说一说Android事件分发中的requestDisallowInterceptTouchEvent
  4. 【原】postman常用设置全局变量的js片段
  5. 程控电源测试微安电流模式_无缝隙源和负载的切换:双向程控电源的一大门槛...
  6. Eclipse中tomcat的简单配置
  7. pivottablejs|在Jupyter 中尽情使用数据透视表!
  8. idou老师教你学Istio 04:Istio性能及扩展性介绍
  9. UITextField监控文字变化方法
  10. 清华大学发布OpenNE:用于网络嵌入的开源工具包
  11. c语言试题1答案,c语言试题1有答案
  12. can和could的用法_can和could的区别和用法
  13. 计算机和软件专业大学排名,全国计算机软件专业大学排名TOP20,清华居然不是第一!...
  14. 如何使静态图片做成动态效果?怎么让静态图片动起来
  15. Python测试:快乐的数字
  16. 本土猎头调整“战术”谋发展
  17. 电力系统数字化转型历史(跨部门系统自建阶段)
  18. tensorflow中axis理解非常重要
  19. 服务器应用程序不可用解决方案!
  20. 电脑调分辨率黑屏了怎么办_调整分辨率后黑屏 怎么调整显卡分辨率解决电脑黑屏...

热门文章

  1. Mac下开机启动rc.common不生效的问题
  2. 书柜的尺寸(bzoj 1933)
  3. (转)详解HTML网页源码的charset格式
  4. hadoop的学习之一
  5. MySQL 字段操作命令
  6. 10. 在constructors内阻止资源泄露
  7. background 图片比例缩小_如何更精准控制背景图片?
  8. re模块常用修饰符_re模块中常用功能函数
  9. mysql启动pid文件位置_msyql 启动报错 找不到pid 文件
  10. c#怎么拟合函数得到参数_c#怎么拟合函数得到参数_最小二乘法拟合任意次曲线(C#)...