数组单调和

题目描述

现定义数组单调和为所有元素i的f(i)值之和。这里的f(i)函数定义为元素i左边(不包括其自身)小于等于它的数字之和。请设计一个高效算法,计算数组的单调和。

给定一个数组A同时给定数组的大小n,请返回数组的单调和。保证数组大小小于等于500,同时保证单调和不会超过int范围。

测试样例:

[1,3,5,2,4,6],6
返回:27

Solution 1: (暴力)
class MonoSum {
public:
    int calcMonoSum(vector<int> A, int n) {
        // write code here
        int sum = 0;
        for(int i = 0; i < n; ++i) {
            sum += f(A, i);
        }
        return sum;
    }

    int f(vector<int> A, int k) {
        int result = 0;
        for(int i = 0; i < k; ++i) {
            if(A[i] <= A[k]) {
                result += A[i];
            }
        }
        return result;
    }
};
Solution 2:
时间: 2024-10-08 10:14:24

数组单调和的相关文章

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

Java 1.8 HashMap源码解析 桶数组+单链表+红黑树

1 // 非线程安全 2 // 继承了AbstractMap 3 // 实现了Map.Cloneable.Serializable接口 4 // 后面2个接口是标记接口,没有抽象方法. 5 // 表示HashMap可以浅复制.序列化和反序列化. 6 public class HashMap<K,V> extends AbstractMap<K,V> 7 implements Map<K,V>, Cloneable, Serializable 1 // 序列化版本唯一标识

数组单链表

在那个久远的没有指针的年代,,据说伟大的先人们都是用数组来实现单链表 #define MAXSIZE 20 typedef struct { int cursor; int data; }Component; void cursor_init(Component list[], int *len) { int i = 0; for(i=0; i<MAXSIZE; i++) { list[i].cursor = i + 1; } list[MAXSIZE-1].cursor = 0; *len =

数组加强

数组的概念 概念:数组的本质是存储.管理和操作一组变量属于复合类型的一种. 键值对的概念: $arr = array('id'=>1,'name'=>'duke','sex'=>'妖'); 每个数组可以有多个值,多个值之间用逗号隔开,每个逗号内的数据我们称为一个单元,每个单元都 是有键(下标)=>值 ,也就是键值对组成,如果不写下标(键)默认会使用整数作为下标,每个单元的值 必须有下标通过下标来定位每个值在数组中的位置,每个单元只能有一种类型的下标.索引(整数)或 者关联(字符串)

Embeded linux之地址映射

一.板级文件 通常会由MACHINE_START到板级文件 MACHINE_START(Chipname, "Chipname") .atag_offset  = 0x100, .map_io  = Chipname_map_io, .init_early = Chipname_init_early, .init_irq = Chipname_gic_init_irq, .handle_irq = gic_handle_irq, .timer   = &Chipname_sys

OC 知识点回顾

/* 字符串: NSString  不可变字符串  字符串对象的内容不能修改,字符串的指针可以改变 NSMutableString 可变字符串   可以修改字符串对象的内容,继承自NSString ,具有所有的方法 */ 1.创建对象,实例方法和类方法 NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"Hello World"]; 2.将不可变字符串转换为可变字符串 NSMutableString *mStr2

学习笔记:Hashtable和HashMap

学了这么些天的基础知识发现自己还是个门外汗,难怪自己一直混的不怎么样.但这样的恶补不知道有没有用,是不是过段时间这些知识又忘了呢?这些知识平时的工作好像都是随拿随用的,也并不是平时一点没有关注过这些基础知识,只是用完了也就忘了.所以写笔记也是个好习惯,光看一个概念不容易记住,整理写成文那就好许多,以后查起来也方便一些. 为什么要用Hash Table? 这就想到了以前工作中遇到的一个事情.多年前我还在写delphi,软件功能中有许多的批量数据运算,由于数据要拉取到内存中,然后多个数据集合间进行遍

java基础篇---I/O技术(二)

接着上篇http://www.cnblogs.com/oumyye/p/4314412.html java I/O流---内存操作流 ByteArrayInputStream和ByteArrayOutputStream ByteArrayInputStream包含一个内部缓冲区,该缓冲区包含从流中读取的字节,内部计数器跟着read方法要提供的下一个字节.FileInputStream是把文件当做数据源.ByteArrayInputStream则是把内存中的某一个数组单做数据源.ByteArray

通过ngx-lua来统计Nginx上的虚拟主机性能数据

Web server调研分析 Filed under: Web Server — cmpan @ 2012-10-29 20:38:34 摘要 简单可依赖的架构首先需要有一个简单可依赖的前端WebServer集群.本文通过深入调研当前主流的异步web服务器Lighttpd和Nginx,从业界使用情况.架构原理.扩展开发.功能对比.性能对比等多个方面进行分析. 调研分析 业界相关 从业界使用情况来看,最新Web Server使用情况的数据如下:Nginx的使用率是6.6%,Lighttpd的使用率