152. Maximum Product Subarray dynamic programming

2024-05-07 07:58

本文主要是介绍152. Maximum Product Subarray dynamic programming,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Find the contiguous subarray within an array (containing at least one number) which has the largest product.

For example, given the array [2,3,-2,4],
the contiguous subarray [2,3] has the largest product = 6.

最大成绩可能是负数与负数的乘积或者正数与正数的乘积;

int maxProduct(vector<int>& nums) {if (nums.size() == 0)return 0;int posinum = nums[0];int neginum = nums[0];int sum = nums[0];for (int i = 1; i < nums.size(); i++){int tempposi = posinum;int tempnegi = neginum;posinum = max(nums[i], max(tempposi * nums[i], tempnegi * nums[i]));neginum = min(nums[i], min(tempposi * nums[i], tempnegi * nums[i]));sum = max(sum, posinum);}return sum;
}

这篇关于152. Maximum Product Subarray dynamic programming的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966774

相关文章

Apple - Media Playback Programming Guide

本文翻译整理自:Media Playback Programming Guide(Updated: 2018-01-16 https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/MediaPlaybackGuide/Contents/Resources/en.lproj/Introduction

强制类型转换static_cast、dynamic_cast、reinterpret_cast、和const_cast

C++类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为“标准转换”,包括以下几种情况: 1) 算术转换(Arithmetic conversion) : 在混合类型的 算术表达式中, 最宽的数据类型成为目标转换类型。   int  ival  =   3 ; double  dval  =   3.14159 ; ival  +

聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例

前言 dynamic 是一种有别于传统变量类型的动态类型声明,刚开始接触可能在理解上会有些困难,可以简单地把它理解为一个盲盒,你可以任意猜测盒子有什么东西,并认为这些东西真正存在而进行处理,等到真正打开时,才能真正确定这些东西是不是真的存在。 所以,当使用 dynamic 声明一个变量时,编译器不会去检查该变量的成员或方法的有效性,换句话说,你可以调用任意成员或方法,即使它们不存在,编译器

Apple - Text Attribute Programming Topics

本文翻译整理自:Text Attribute Programming Topics(更新日期:2004-02-16 https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/TextAttributes/TextAttributes.html#//apple_ref/doc/uid/10000088i

[Uva 11990] Dynamic Inversion (CDQ分治入门)

Uva - 11990 动态逆序对,求删除一个点之前序列中逆序对的个数 首先倒过来看这个问题,把点先全部删掉 然后从最后一个点开始倒着往数列中加点 求加完这个点逆序对的变化 CDQ分治做法 把删除时间看作 t,下标看作 x,值看作 y 然后对 x排序,对 t偏序,用树状数组维护 y 具体来说就是对于每个点 (t0,x0,y0) (t_0, x_0, y_0) 先统计

eclipse 如何创建一个Dynamic Web project (动态web项目)

1.准备工作: eclipse的下载安装 2.创建Dynamic Web project 至此一个Dynamic web project生成完毕。 项目结构为:

动态规划学习总结 dynamic programming

因为阅读论文的原因,看到有dynamic programming 就学习一下,在知乎上,看到回答解释帖子: 作者:徐凯强 Andy 链接:https://www.zhihu.com/question/23995189/answer/35324479 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 我曾经作为省队成员参加过NOI,保送之后也给学校参

CUDA-GPU programming Introduction (4)

Concurrent execution and streams GPU和CPU之间的并行性是不言而喻的,各自的计算是asynchronous的,任何时候如果需要同步这两者,都需要用到: CudaDeviceSynchronize () 对于GPU和CPU之间的memory copy来说,小数据量传输默认是asynchronous,大数据量传输则是synchronous的。但是我们可以加上后

CUDA-GPU programming Introduction (3)

关于提高performance的一些建议: Important caveat:number of threads 并不是越多并行线程效率越高,因为每个线程都消耗一定的resource,主要是register和shared memory。所以开出再多的线程,GPU也只能在有限的资源下让一部分并行。优化应该根据资源需求。 unavoidable bottleneck: transfer b

CUDA-GPU programming Introduction (1)

基本定位: CPU的并行是对于多任务的同时进行,task parallelism, 力求minimize latency,而GPU的并行是对于单任务的数据并行,data parallelism, 力求maximize throughout。CPU的组成有相当的部分作为控制和调度,GPU则主要是计算单元的堆积,large scale SIMD (Single Instruction Multipl