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

用织梦做外文网站wordpress icon设置

用织梦做外文网站,wordpress icon设置,wordpress综合检测工具,天元建设集团有限公司在哪个区152. 乘积最大子数组 题目描述#xff1a; 给你一个整数数组nums#xff0c;请你找出数组中乘积最大的非空连续子数组#xff0c;并返回该子数组所对应的乘积 思路1#xff1a;贪心 由于 n u m s [ i ] nums[i] nums[i]都是整数#xff0c;所以多乘一些数肯定不会让绝…152. 乘积最大子数组 题目描述 给你一个整数数组nums请你找出数组中乘积最大的非空连续子数组并返回该子数组所对应的乘积 思路1贪心 由于 n u m s [ i ] nums[i] nums[i]都是整数所以多乘一些数肯定不会让绝对值变小所以我们就要尽可能多乘一些数 首先我们考虑最简单的例子也就是不包含0的情况 统计负数的数量如果是偶数那直接返回所有数的乘积即可如果负数的数量是奇数我们就考虑删掉一个负数由于我们上面说过多乘一些数不会让乘积的绝对值变小所以我们要尽可能少删数从左往右找到第一个下标为id1从右往左找到第一个下标为id2要么是删id1往左的所有数要么是删id2往右的所有数两种情况取最大值就行你可能会怀疑为什么答案不可能是被删除的那一段因为被删除的那一段都在另一半计算过了删id1往左的所有数时这段在计算删id2往右的所有数时被计算过了 class Solution { public:int fuck(int l, int r, vectorintnums){if(l r || l 0 || r nums.size())return -2e9;if(l r)return nums[l];int mul 1;for(int i l; i r; i)mul * (nums[i] 0 ? 1 : -1);if(mul 0){for(int i l; i r; i)mul * nums[i];return mul;}mul -1;int id1 -1, id2 -1;for(int i l; i r; i){mul * (nums[i] 0 ? 1 : -1);if(mul 0){id1 i;break;}}int ans1 1, ans2 1;for(int i id1 1; i r; i){ans1 * nums[i];}mul -1;for(int i r; i l; --i){mul * (nums[i] 0 ? 1 : -1);if(mul 0){id2 i;break;}}for(int i id2 - 1; i l; --i){ans2 * nums[i];}return max(ans1, ans2);}int maxProduct(vectorint nums) {vectorintv;for(int i 0; i nums.size(); i){if(nums[i] 0)v.push_back(i);}if(v.empty())return fuck(0, nums.size() - 1, nums);int ans 0;v.push_back(nums.size());int pre -1;for(int i 0; i v.size(); i){ans max(ans, fuck(pre 1, v[i] - 1, nums));pre v[i];}return ans;} };思路2:DP 这题和最大子数组和的题型有一点像但是不可以像它那样去进行转移不能仅仅维护一个最大值这样会忽略偶数个负数乘起来也是正数的情况有一种局部贪心的感觉 所以还需要维护一个最小值 状态 m a x n [ i ] maxn[i] maxn[i]表示以 n u m s [ i ] nums[i] nums[i]结尾的子数组乘积的最大值 m i n x [ i ] minx[i] minx[i]表示以 n u m s [ i ] nums[i] nums[i]结尾的子数组乘积的最小值 转移方程 n u m [ i ] 0 num[i] 0 num[i]0 m a x n [ i ] m a x ( n u m s [ i ] , m a x n [ i − 1 ] ∗ n u m s [ i ] ) ; maxn[i] max(nums[i], maxn[i - 1] * nums[i]); maxn[i]max(nums[i],maxn[i−1]∗nums[i]); m i n x [ i ] m i n ( m i n x [ i − 1 ] ∗ n u m s [ i ] , n u m s [ i ] ) ; minx[i] min(minx[i - 1] * nums[i], nums[i]); minx[i]min(minx[i−1]∗nums[i],nums[i]); n u m [ i ] 0 num[i] 0 num[i]0 m a x n [ i ] m a x ( m i n x [ i − 1 ] ∗ n u m s [ i ] , n u m s [ i ] ) ; maxn[i] max(minx[i - 1] * nums[i], nums[i]); maxn[i]max(minx[i−1]∗nums[i],nums[i]); m i n x [ i ] m i n ( m a x n [ i − 1 ] ∗ n u m s [ i ] , n u m s [ i ] ) ; minx[i] min(maxn[i - 1] * nums[i], nums[i]); minx[i]min(maxn[i−1]∗nums[i],nums[i]); 为了解决数据加强的问题可以用double卡过去 class Solution { public:int maxProduct(vectorint nums) {int n nums.size();vectordoublemaxn(n), minx(n);double ans nums[0];maxn[0] minx[0] nums[0];for(int i 1; i n; i){if(nums[i] 0){maxn[i] max((double)nums[i], maxn[i - 1] * nums[i]);minx[i] min(minx[i - 1] * nums[i], (double)nums[i]);}else if(nums[i] 0){maxn[i] max(minx[i - 1] * nums[i], (double)nums[i]);minx[i] min(maxn[i - 1] * nums[i], (double)nums[i]);}ans max(ans, maxn[i]);}return (int)ans;} };
http://www.dnsts.com.cn/news/142440.html

相关文章:

  • 湘潭响应式网站建设 速来磐石网络重庆网站搜索引擎seo
  • 在线教育网站制作类似聚划算的网站怎么建设
  • 自己怎样制作公司网站百度风云榜热搜
  • 中医网站风格做html网站模板
  • 线上注册公司是在哪个网站联盟营销的网络营销方式
  • 个人房产查询系统网站官网做网站怎么盈利
  • 商用营销型网站建设网站建设专员招聘
  • 施工企业质量发展规划成都网络推广优化
  • 岑巩网站建设有美元进账去外管局网站做啥
  • 微信第三方平台seo排名优化公司价格
  • 商城网站建设流程图案例中优衣库所采用的网络营销方式
  • 免费建英文网站延庆网站建设
  • 官方网站建设对比网站底部版权html代码
  • 网站建设费用的会计分录海口市住房和城乡建设局 网站
  • 网站主题 模板游戏推广员平台
  • 怎样用godaddy建设一个网站微信群二维码推广平台
  • 怎么建一个小说网站一个人免费观看在线高清国语
  • 小程序建站平台青原区城乡建设局门户网站
  • 网站建设jnlongji网站设计计划书的要求
  • 茶叶网站策划方案怎么把产品卖到国外去
  • 学校网站的页头图片做公司网站建设论文
  • 做外贸有哪些网站比较好室内设计网课
  • seo网站优化师视频软件下载app
  • 网站定制页面调整至居中织梦cms网站地图
  • 上海做网站的公司名称企业管理软件的价格
  • 做调查问卷网站运城网站建设公司
  • 攻击网站方法wordpress会员中心404
  • 门户型网站都有哪些wordpress菜单显示图片
  • 布吉网站建设哪家便宜找人开发一款app需要多少钱
  • 做单网站dedecms网站地图怎么做