首页 > 代码库 > 2016校招真题之数组单调和
2016校招真题之数组单调和
1、题目描述
现定义数组单调和为所有元素i的f(i)值之和。这里的f(i)函数定义为元素i左边(不包括其自身)小于等于它的数字之和。请设计一个高效算法,计算数组的单调和。给定一个数组A同时给定数组的大小n,请返回数组的单调和。保证数组大小小于等于500,同时保证单调和不会超过int范围。
测试样例:
[1,3,5,2,4,6],6
返回:27
2、代码实现
1 import java.util.*; 2 3 public class MonoSum { 4 public static void main(String[] args) { 5 int[] arr = {1,3,5,2,4,6}; 6 int a = 6; 7 System.out.println(MonoSum.calcMonoSum(arr,a)); 8 } 9 10 public static int calcMonoSum(int[] A, int n){11 int tempResult = 0;12 if (n > 500 && tempResult <= 2147483647 && tempResult >= -2147483647) {13 return 0;14 }15 for(int i = 0; i < A.length; i++){16 for(int j = 0; j < i; j++){17 if(A[j] <= A[i]){18 tempResult += A[j];19 }20 }21 }22 23 return tempResult;24 }25 }
2016校招真题之数组单调和
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。