数组单调和
来源:互联网 发布:南方数据粘贴 编辑:程序博客网 时间:2024/05/15 11:43
现定义数组单调和为所有元素i的f(i)值之和。这里的f(i)函数定义为元素i左边(不包括其自身)小于等于它的数字之和。请设计一个高效算法,计算数组的单调和。
给定一个数组A同时给定数组的大小n,请返回数组的单调和。保证数组大小小于等于500,同时保证单调和不会超过int范围。
测试样例:
[1,3,5,2,4,6],6
返回:27
class MonoSum {public: int res=0; int calcMonoSum(vector<int> A, int n) { // write code here int len=A.size()-1; MergeSort(A,0,len); return res; } void MergeSort(vector<int> &A,int start,int end){ if(start<end){ int mid=(start+end)/2; MergeSort(A,start,mid); MergeSort(A,mid+1,end); Merge(A,start,mid,end); } } void Merge(vector<int>&A,int start,int mid,int end ){ vector<int> tmp(A.size(),0); for(int i=0;i<A.size();i++){ tmp[i]=A[i]; } int i,j,k; for(i=start,j=mid+1,k=start;i<=mid&&j<=end;k++){ if(tmp[i]<=tmp[j]){ res+=tmp[i]*(end-j+1); A[k]=tmp[i++]; } else{ A[k]=tmp[j++]; } } while(i<=mid){ A[k++]=tmp[i++]; } while(j<=end){ A[k++]=tmp[j++]; } }};
阅读全文
0 0
- 数组单调和
- 数组单调和
- 数组单调和
- 数组单调和
- 校招真题-其他-数组单调和
- 数组小和(单调和)
- 【牛客网】马三来刷题之数组单调和
- 数组单调和(动态规划问题)
- 单调队列-首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和【单调队列】
- 编程题--数组单调和(查找、动态规划)
- POJ - 3415 Common Substrings 后缀数组+单调栈+前缀和
- 数组实现单调栈
- 单调队列 和 单调栈
- 单调队列 和 单调栈
- BZOJ3238【后缀数组】【单调栈】
- 单调队列和单调栈详解
- HAOI2008 木棍分割 二分答案 前缀和优化 单调队列 滚动数组
- 协同推荐系统简介
- retrofit笔记
- springboot reids 对象转换异常
- 香水美容化妆品公司织梦dedecms模板(带手机端)
- 为RecyclerView添加Header和Footer,支持三种LayoutManager
- 数组单调和
- ASP.NET URL重写(伪静态)
- Ionic 安装部署
- 二维码的使用
- 获取系统硬件信息
- [RK3288][Android6.0] WiFi之Autojoin对无线网络的选择机制
- spark集群环境与任务调参
- 异步加载——MVP
- Wireshark网络抓包(一)——数据包、着色规则和提示