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

青岛外贸网站运营哪家好郑州网站app建设

青岛外贸网站运营哪家好,郑州网站app建设,建设网站的特色,网站权重多少比较好分治法 //lSum表示[left,right]内以left为左端点的最大子段和 //rSum表示[left,right]内以right为右端点的最大字段和 //iSum表示[left,right]的区间和 int divide_conquer(int* nums,int left,int right,int *lSum,int *rSum,int *iSum){int maxSum;//表示[left,right]内的最…

分治法

//lSum表示[left,right]内以left为左端点的最大子段和
//rSum表示[left,right]内以right为右端点的最大字段和
//iSum表示[left,right]的区间和
int divide_conquer(int* nums,int left,int right,int *lSum,int *rSum,int *iSum){int maxSum;//表示[left,right]内的最大字段和if(left == right){*lSum = nums[left];*rSum = nums[left];*iSum = nums[left];maxSum = nums[left];return maxSum;}int mid = (left+right)/2;int lSumL,rSumL,iSumL;int maxSumL = divide_conquer(nums,left,mid,&lSumL,&rSumL,&iSumL);int lSumR,rSumR,iSumR;int maxSumR = divide_conquer(nums,mid+1,right,&lSumR,&rSumR,&iSumR);*iSum = iSumL + iSumR;*lSum = lSumL > (iSumL + lSumR) ? lSumL:(iSumL + lSumR);*rSum = rSumR > (iSumR + rSumL) ? rSumR:(iSumR + rSumL);maxSum = maxSumL > maxSumR ? maxSumL: maxSumR;if(maxSum < rSumL+lSumR)maxSum = rSumL+lSumR;return maxSum;
}int maxSubArray(int* nums, int numsSize) {int lSum,rSum,iSum;return divide_conquer(nums,0,numsSize-1,&lSum,&rSum,&iSum);
}

动态规划

第一版

int maxSubArray(int* nums, int numsSize) {if(numsSize == 1)return nums[0];int *max_sub_sum = (int*)malloc(sizeof(int)*numsSize);max_sub_sum[0] = nums[0];int max_sum = nums[0];for(int i = 1;i < numsSize;i++){max_sub_sum[i] =  max_sub_sum[i-1] + nums[i] >= nums[i] ? max_sub_sum[i-1] + nums[i]:nums[i];if(max_sub_sum[i] > max_sum)max_sum = max_sub_sum[i];}free(max_sub_sum);return max_sum;
}

分析发现,numsSize等于1的情况不用单独考虑,后面的逻辑可以涵盖这种情况:

int maxSubArray(int* nums, int numsSize) {int *max_sub_sum = (int*)malloc(sizeof(int)*numsSize);max_sub_sum[0] = nums[0];int max_sum = nums[0];for(int i = 1;i < numsSize;i++){max_sub_sum[i] =  max_sub_sum[i-1] + nums[i] >= nums[i] ? max_sub_sum[i-1] + nums[i]:nums[i];if(max_sub_sum[i] > max_sum)max_sum = max_sub_sum[i];}free(max_sub_sum);return max_sum;
}

进一步分析,发现求max_sub_sum[i]的时候,只需要用到max_sub_sum[i-1],而不需要用到max_sub_sum数组i-1前面的元素,所以可以用一个pre_max_sub_sum取代max_sub_sum数组的作用,节省内存开销。

int maxSubArray(int* nums, int numsSize) {int pre_max_sub_sum = nums[0];int max_sum = nums[0];for(int i = 1;i < numsSize;i++){pre_max_sub_sum =  pre_max_sub_sum + nums[i] >= nums[i] ? pre_max_sub_sum + nums[i]:nums[i];if(pre_max_sub_sum > max_sum)max_sum = pre_max_sub_sum;}return max_sum;
}

http://www.dtcms.com/wzjs/789231.html

相关文章:

  • 网站建设与管理习题一WordPress有评论邮件通知
  • 有账号密码网站怎么建设大型网站技术架构核心原理与案例分析
  • 网站开发劳动合同范本360做企业网站多少钱
  • 怎么新建网站wordpress怎么把分类弄成导航
  • 中国建设银行网站晋阳支行英文网站外链查询
  • 唯品会购物网站开发项目wordpress国际主题
  • 企业官方网站怎么建设西安广告公司前十名
  • 杭州建站平台seo长尾关键词优化
  • 没有网站怎么做淘客网站备案填写要求吗
  • 旅游网站模板免费wordpress锚点插件
  • 宝安公司可以网站设计网站建设英语翻译资料
  • 如何用家庭电脑做网站建设银行官方网站登录
  • 沧州网站建设微艾薇江苏两学一做网站
  • 做门窗安装用哪些网站找生意微信公众号平台登录入口
  • wordpress建站需要学什么手机wordpress查看加密文章
  • 衡阳商城网站制作安徽省建设厅门户网站
  • 做网站必备软件营销策划与运营培训
  • 网站免费建站appwordpress百度xml
  • 未来做哪个网站致富抖音小程序怎么关闭或注销
  • 中英繁网站源码邢台市属于哪个省
  • html网站设计实验报告perl网站建设
  • 做西点的网站特价网站建设价格低
  • 怎么做推广网站云南网站公司
  • 辽宁省兴城做网站的企业产品宣传册制作
  • 彩票网站建设开发东莞大型网站建设
  • 网站首页调用网站标题wordpress自动链接到图片
  • 保定做网站那家好触屏网站建设
  • 产品 网站建设固镇县住房和城乡建设局网站
  • 赣州做网站做网站建设推荐
  • 网站建设服务合同 律师建网站支持设备是什么意思