昨晚学妹参加了B站秋招笔试,还想考考我?

简介: 昨晚学妹参加了B站秋招笔试,还想考考我?

学妹昨晚参加了B站的2022届秋招算法笔试,做完给我发来了一道题,想考考我,说挺难的。

我看了两分钟,给她发去了我的思路。然后学妹一眼就看懂了,立马秒过。

那么这道题到底是怎么做的呢?

题目要求将个数切分成块,求每块的序号乘上该块内数字之和的最大值。

那么首先我们可以用来表示前缀和,也就是。

然后假设个子序列中,第个子序列的末尾元素为,其中。那么第个子序列的元素和就可以用前缀和来表示为。

然后题目要求的最大值就可以表示为:

展开并化简就可以得到:

后面一项就是整个数组之和的倍,是一个定值。所以要求这个式子的最大值,就是求的最小值。

又因为,所以就是求的最小值。

可以发现,这个前缀和其实是互不干扰的,所以只需要对所有的前缀和进行排序,取最小的个就行了。

C++代码如下:

#include <stdio.h>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 300010;
ll a[N];
int main() {
    int n, k;
    scanf("%d%d", &n, &k);
    for (int i = 0; i < n; ++i) {
        scanf("%lld", &a[i]);
        if (i) a[i] += a[i-1];
    }
    sort(a, a+n-1);
    ll res = 0;
    for (int i = 0; i < k-1; ++i)
        res += a[i];
    res = -res + k * a[n-1];
    printf("%lld\n", res);
    return 0;
}

Python代码:

n, k = [int(x) for x in input().strip().split(" ")]
a = [int(x) for x in input().strip().split(" ")]
S = [sum(a[:i+1]) for i in range(n-1)]
S.sort()
res = -sum(S[:k-1]) + k * sum(a)
print(res)
相关文章
|
9月前
|
Java
2023金九银十通过率最高的大厂面试真题汇总,已助500+人成功上岸
2023年已经接近尾声了,疫情的影响也在逐渐减小,市场慢慢复苏。 不过最近还是会有一些读者粉丝朋友反馈,“Java市场饱和了”、“大环境还是不好”、“投几十个简历都没有一个约面的”。其实并不是岗位需求量变少了,是越来越多的公司需要【中、高级Java工程师】。 企业的用人需求越来越高,面试通过率也就越来越低。市场依旧很卷,只不过卷的是技术,卷的是经验。 结合了9、10月份最新面试动向,给大家准备了一套最新大厂面试真题汇总,刷完掌握之后通过技术面基本没有什么问题了! 助大家提升技术、稳稳跳槽涨薪! 必备面试题+八股文 2023大厂最新面试题汇总 资料里像这样的例题和说
76 0
|
9月前
|
NoSQL 算法 关系型数据库
入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)
先说一下自己的个人情况,18届应届生,通过校招进入到了蘑菇街,然后一待就待了差不多2年多的时间,可惜的是今年4月份受疫情影响遇到了大裁员,而我也是其中一员。好在早有预感,提前做了准备,之前一直想去字节跳动,年前就已经在做准备了,这场持久战拉得很长,也最终以7个月的时间取得胜利。在踏入字节跳动,办理入职手续的那一天,作为一个男子汉,确实是落泪了。特分享一波我的真实经历,共勉。
|
消息中间件 算法 NoSQL
秋招上岸“我”都做对了哪些事?
秋招上岸“我”都做对了哪些事?
135 2
秋招上岸“我”都做对了哪些事?
2024金九银十通过率最高的大厂面试真题汇总,已助500+人成功上岸
不过最近还是会有一些读者粉丝朋友反馈,“Java市场饱和了”、“大环境还是不好”、“投几十个简历都没有一个约面的”。其实并不是岗位需求量变少了,是越来越多的公司需要【中、高级Java工程师】。
|
9月前
|
设计模式 算法 NoSQL
Java开发三年四面字节跳动复习一个月斩获offer,寒冬并不可怕
目前互联网行业形势越来越严峻,我接连投递了很多的简历,得到的回复却是寥寥无几,索性好好复习了大概一个半月的样子,挑战字节跳动成功!!接下来分享我在字节面试遇到的面试题,欢迎大家文末留言与我一起讨论!
|
机器学习/深度学习 算法 定位技术
美团2024届暑期实习第一轮后端笔试详解
美团2024届暑期实习第一轮后端笔试详解
486 0
|
大数据 测试技术 程序员
【面试邀请】温大大和他的朋友们,日常都是怎么「摸鱼+加薪」的?
大家好,我是温大大 就像马丁·路德·金说过一句话:I have a dream 温大大也有个梦想就是: 1、将毕生所学的「测试技能」倾囊相授传给各位同学,让同学们升职加薪。 2、组建一个测试圈,在这里我们可以:讨论「测试」技术问题、揭秘「测试」薪酬、分享「面试」套路。
【面试邀请】温大大和他的朋友们,日常都是怎么「摸鱼+加薪」的?
|
Arthas NoSQL 算法
二本院校学弟大二开始实习,大三收割阿里、腾讯实习offer
二本院校学弟大二开始实习,大三收割阿里、腾讯实习offer
二本院校学弟大二开始实习,大三收割阿里、腾讯实习offer
|
消息中间件 NoSQL 算法
双非硕士的辛酸求职回忆录:第 1 篇 一份让面试官满意的简历究竟要做到什么
双非硕士的辛酸求职回忆录:第 1 篇 一份让面试官满意的简历究竟要做到什么
207 0
双非硕士的辛酸求职回忆录:第 1 篇 一份让面试官满意的简历究竟要做到什么

热门文章

最新文章