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

阜城网站建设公司seo发帖网站

阜城网站建设公司,seo发帖网站,WordPress 黛米付,搭建本地网站买卖股票的最佳时机 III 假设你有一个数组#xff0c;它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来找到最大的利润。你最多可以完成两笔交易。 样例 给出一个样例数组 [4,4,6,1,1,4,2,5], 返回 6 解题 尝试参考买卖股票的最佳时机 II 提交运行发现错误#…买卖股票的最佳时机 III 假设你有一个数组它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来找到最大的利润。你最多可以完成两笔交易。 样例 给出一个样例数组 [4,4,6,1,1,4,2,5], 返回 6 解题 尝试参考买卖股票的最佳时机 II  提交运行发现错误每次找到连续的递增子数组记录前后的差值找到两个最大的。如下程序其实有问题最大的差值可能跨两个子数组的。 如{1,2,4,2,5,7,2,4,9,0} 三个递增数组{1,2,4}、{2,5,7}、{2,4,9}起始数组的差是3、5、7最大两个和是;57 12 然后对前两数组第二个数组的起始数大于第一个的起始数而第二个的结束数大于第一个的结束数通过递增子数组还大于2个所有有个更大的其实数组差是7-1 6. public int maxProfit(int[] A) {// write your code hereif(A null || A.length 0)return 0;if(A.length 1)return 0;int sum0;int i 0;int j 0;int subSum1 Integer.MIN_VALUE;int subSum2 Integer.MIN_VALUE;int tmpSum 0;while(i A.length j A.length){tmpSum 0;while(jA.length-1 A[j] A[j1])j;tmpSum A[j] - A[i];if(subSum1 subSum2){ // subSum1 是较小者int tmp subSum1;subSum1 subSum2;subSum2 tmp;}// 当 tmpSum 比较小 subSum1 大 的时候更新sumSum1if(tmpSum subSum1){subSum1 tmpSum;}i j 1;// 下一个位置从新开始j j 1;}if( subSum2 Integer.MIN_VALUE)return subSum1;return subSum1 subSum2;} View Code   题目标签中有个前后遍历就想到定义两个数组 left[i] 表示0 - i 并且i是卖出的最大收益 right[i] 表示i - A.length-1 并且i 是买入的最大收益 最后求两个数组的最大和但是这里时间复杂度是O(N^2)可以进一步的降低的 class Solution {/*** param prices: Given an integer array* return: Maximum profit*/public int maxProfit(int[] A) {// write your code hereif(A null || A.length 0)return 0;if(A.length 1)return 0;int sum0;int[] left new int[A.length];int[] right new int[A.length];int min A[0];// left[i] 表示在 0 - i 中能够 卖出的最大收益当是 0的时候表示不买也不卖for(int i 1;i A.length;i){if(min A[i]){left[i] A[i] - min;}elsemin A[i];}int max A[A.length - 1];// right[i] 表示在 i - A.length-1 中能够卖出的最大收益for( int i A.length -2;i0;i--){if(max A[i]){right[i] max - A[i];}else{max A[i];}}max Integer.MIN_VALUE;for(int i 0;i A.length;i){for(int j i;jA.length;j)max Math.max(max,left[i] right[j]);}return max;} };   如果我们更改定义的两个数组 left[i] 表示0 - i 这段数组的最大收益 right[i] 表示i - A.length-1 这段数组的最大收益 在求两个数组的和时候只需要线性的时间复杂度 class Solution {/*** param prices: Given an integer array* return: Maximum profit*/public int maxProfit(int[] A) {// write your code hereif(A null || A.length 0)return 0;if(A.length 1)return 0;int sum0;int[] left new int[A.length];int[] right new int[A.length];int min A[0];// left[i] 表示在 0 - i 中能够 卖出的最大收益当是 0的时候表示不买也不卖for(int i 1;i A.length;i){if(min A[i]){left[i] Math.max(left[i-1], A[i] - min);}else{left[i] left[i-1];min A[i];}}int max A[A.length - 1];// right[i] 表示在 i - A.length-1 中能够卖出的最大收益for( int i A.length -2;i0;i--){if(max A[i]){right[i] Math.max(right[i1],max - A[i]);}else{right[i] right[i1];max A[i];}}max Integer.MIN_VALUE;for(int i 0;i A.length;i){max Math.max(max,left[i] right[i]);}return max;} };
http://www.huolong8.cn/news/151209/

相关文章:

  • 如何用图片做网站背景app定制小程序开发
  • 移动版网站建设的必要性wordpress 新增选项
  • 重庆网站公司设计方案做网站抬头
  • 做ar的网站网页素材提取
  • 网站开发部门的规章制度中介网站设计
  • 网站开发技术 难点网站开发工资淄博
  • 中山民众网站建设做什么网站比较受欢迎
  • c 做网站优点昆明网页设计公司排行榜
  • 网站建设及目标建设摩托车官网官方网站
  • 关于设计网站自动注册wordpress账号软件
  • 广州网站开发招聘信息ui是什么
  • 做网站怎样收费的如何做一家门户网站
  • seo怎么做网站的tdk建设大型网站怎样赢利
  • 如何制作个人手机网站做站群的网站怎么来
  • 可以做手机网页的网站关键词点击排名软件
  • 做个网页需要多少钱?六安seo地址
  • 管理外贸网站模板下载设计衣服网站
  • 长春网站建设定制手机上的网页游戏
  • 专业邯郸做网站seo关键词seo排名公司
  • 广州市网站建设怎么样彩票网站建设开发
  • 网站权重为零网站建设平台源码
  • 建设网站的技术互联网应用开发与设计
  • 营销类网站建营销类网站建设如何卸载和安装wordpress
  • 一个公司网站的价格华为物联网开发平台
  • 我做外贸要开国际网站吗网站设置gif禁用
  • 网站制作教程下载太原网站制作策划
  • 网站建设推广哪家专业崇左网站搭建
  • 做汽车网站销售怎么入手公司名称邮箱大全
  • 检索标准的网站WordPress论坛推广插件
  • asp服装网站源码软件库资源共享