• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

啊远

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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 }

 

 

posted on 2016-10-16 09:36  啊远  阅读(335)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3