java 板


LINE

好久的文章, 还是回一下.. 我的演算是O(n)的演算法, 这里的trick是因为整数绝对值只会愈乘愈大, 所以不用dynamic programming 初始三个变数 max = 0 //目前为止最大连乘积 product = 1 //连乘积 productAfterFirstMinus = 0; //第一个负号後的连乘积 每读一个数字x进来{ if(x == 0){ product = 1; productAfterFirstMinus = 0; }else{ product *= x; productAfterFirstMinus *= x; max = Max(max, product, productAfterFirstMinus); if(productAfterFirstMinus == 0 && x < 0){ productAfterFirstMinus = 1; } } } 不知道这样写有没有人看的懂..orz ※ 引述《Domos (Domos)》之铭言: : 看一下这个O(n)的演算法work不work : 假设有n个数字要求max : 我们把题目分解成n-1个数字 : 第n个数字如果为正,则求n-1的max : 第n个数字如果为负,则求n-1的min : 第n个数字如果为零,则求n-1的max : 接下来用同样演算法去求出n-1的结果 : 以下是此演算法用DP实作: : a[] 选这个数字的MAX : b[] 不选这个数字的MAX : c[] 选这个数字的MIN : d[] 不选这个数字的MIN : e[] 此这个数字开始的值 : 数字存在num[]里 : a[0],b[0],c[0],d[0],e[0]全部归零 : for i = 1 ~ n : //以下x请改成num[i] 怕乱不这样写 : a[i] = max(x * a[i-1],x * c[i-1],x * e[i-1]) : b[i] = max(a[i-1],b[i-1],c[i-1],d[i-1],e[i-1]) : c[i] = min(x * a[i-1],x * c[i-1],x * e[i-1]) : d[i] = min(a[i-1],b[i-1],c[i-1],d[i-1],e[i-1]) : e[i] = x : 输出a[n],b[n],c[n],d[n],e[n]最大值 : example: : 0,1,3,-12,3,-1,4,0,-10,12,3,-2,-5,-7,-10,-1,3,2,-1,0 : a b c d e : 0 0 0 0 0 ini 这里出错了(或者说题目没定义) : 如果可以选出空集合,那没错,如果一定要选出至少一个, : 这里就得改成num[1]而非0 : 0 0 0 0 0 i=1 : 0 0 0 0 1 i=2 : 3 1 0 0 3 ... : 0 3 -36 0 -12 : 0 3 -108 -36 3 : 108 3 -3 -108 -1 : 432 108 -432 -108 4 : 0 432 0 -432 0 : 0 432 0 -432 -10 : 0 432 -120 -432 12 : 36 432 -360 -432 3 : 720 432 -72 -432 -2 : 360 720 -3600-432 -5 : ... 懒的打了 : d似乎可以省略,不过还是O(n) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.37.194
1F:推 polomoss:谢谢大大热心分享~~昨天突然断线很抱歉^^ 06/09 11:30
2F:推 Fenikso:special case: 如果只输入一个负数会错(逃) 06/10 05:55
3F:→ tuju:看你希望输入一个负数的答案是负还是0吧 06/27 14:10
bleed1979:转录至看板 Soft_Job 07/04 03:16







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP