快手2019校招笔试题(代码片段)

一米阳光213 一米阳光213     2022-11-24     653

关键词:

目的:分别从前面和后面开始找划分点,使得前面的数字之和 = 后面的数字之和

目标表述:sum( 前面m 个数 ) = sum( 后面n个数) s.t. m+n <= N(总个数)

变形:sum[i] 表示前 i 个数之和,sum2[i]表示后 i 个数之和

如果 sum[m] == sum2[n] ,s.t., m+n <= N,问题解决!

#include <iostream>
using namespace std;
typedef long long lint;

lint a[200002] =0;
lint sum[200002] =0;
lint sum2[200002] =0;

// 在 sum2[] 中搜索是否有元素= q,因为 sum2 单调递增,所以可以用二分查找
// 搜索范围从 sum2[1] 到 sum2[limit]
// 返回值: 找到就返回序号,没找到就返回 -1
int bi_search(lint q, int limit)
    if( q < sum2[1] || q > sum2[limit] ) return -1;
    int left = 1, right = limit, mid;
    while( left <= right )
        mid = (left+right)/2;
        if( sum2[left] == q ) return left;
        if( sum2[right] == q ) return right;
        if( sum2[mid] == q ) return mid;
        if( mid == left) break;
        if( sum2[mid] > q )
            right = mid;
        else
            left = mid;

    
    return -1;


int main()

    int n;
    cin >> n;
    for(int i=1;i<=n;i++)   // 从1开始
    
        scanf("%lld",&a[i]);
        sum[i] = sum[i-1] + a[i];
    
    for(int i=n;i>=1;i--)
        sum2[n+1-i] = sum2[n-i] + a[i];

    /************ match ************/
    lint max_gain = 0;
    for(int i=1;i<n;i++)
        int j = n - i; // 取值的范围
        if( bi_search(sum[i],j) != -1 )
            max_gain = sum[i];
    
    cout << max_gain << endl;

    return 0;

网易2019校招笔试题-瞌睡(代码片段)

分析:由于小易清醒的时间是连续的,所以整个搜索空间为O(n),根本不需要贪心或者动态规划就能搞定。小易这堂课获得的兴趣值分为两部分:本来就清醒时获得的兴趣值,被叫醒的k分钟获得的兴趣值。因为... 查看详情

阿里巴巴2016校招笔试题(含答案解析)(代码片段)

3、将1,2,3,……,99,100任意排列成一个圈,相邻两数的差的绝对值求和最多为()A:100B:198C:200D:500E:2500F:5000答案:F4、如果下列的公式成立:84*148=B6A8。则采用的是(&# 查看详情

网易2019校招笔试题-瞌睡(代码片段)

分析:由于小易清醒的时间是连续的,所以整个搜索空间为O(n),根本不需要贪心或者动态规划就能搞定。小易这堂课获得的兴趣值分为两部分:本来就清醒时获得的兴趣值,被叫醒的k分钟获得的兴趣值。因为... 查看详情

微软2017校招笔试题2composition

题目AlicewritesanEnglishcompositionwithalengthofNcharacters.However,herteacherrequiresthatMillegalpairsofcharacterscannotbeadjacent,andif‘ab‘cannotbeadjacent,‘ba‘cannotbeadjacenteither.Inordertomeetther 查看详情

微软2017校招笔试题3registrationday

题目It‘sHUniversity‘sRegistrationDayfornewstudents.ThereareMofficesinHUniversity,numberedfrom1toM.Studentsneedtovisitsomeoftheminacertainordertofinishtheirregistrationprocedures.Theofficesareindifferent 查看详情

小米2017校招笔试题

只过了20%...我日树的高度 时间限制:C/C++语言1000MS;其他语言3000MS 内存限制:C/C++语言65536KB;其他语言589824KB 题目描述: 现在有一棵合法的二叉树,树的节点都是用数字表示, 现在给定这棵树上所有的父子关系,求这棵树的高... 查看详情

网易2017年校招笔试题最大的奇约数

题目:定义函数f(x)为x的最大奇数约数,x为正整数,例如f(44)=11.现在给出一个N,需要求出f(1)+f(2)+f(3)+...+f(N)例如:N=7f(1)+f(2)+f(3)+f(4)+f(5)+f(6)+f(7)=1+1+3+1+5+7=21. 分析:奇数的最大约数是自身,偶数的最大约数是是除去所有偶因子之... 查看详情

奇虎3602017校招笔试题

最强大脑时间限制:C/C++语言1000MS;其他语言3000MS内存限制:C/C++语言65536KB;其他语言589824KB题目描述:小B乘火车和朋友们一起在N市到M市之间旅行。她在路途中时睡时醒。当她醒来观看窗外的风景时,注意到每个火车站都有一... 查看详情

lgyx2017校招笔试题

前言今天通知过了笔试,但总感觉有些笔试没来得及做的题不解决不舒服斯基。题目 大意就是,给你个形如a,b,c,ab,bb,cb,ac,bc,cc,aab,bab,cab,abb,bbb,cbb,acb,bcb,ccb......按某种规律排列的无限长的字符串数组,要求:1)给定一个位置,... 查看详情

发水果(猿辅导校招笔试题)(代码片段)

[编程题]发水果时间限制:C/C++2秒,其他语言4秒空间限制:C/C++96M,其他语言192M中午是猿辅导水果时间,小猿会给每个同学发水果。猿辅导有一个矩形的办公区域,共有N排,每排M个工位。平时小猿按照从第一排到最后一排的顺... 查看详情

校招笔试题大杂烩

1、某表达式的前缀形式为"+-*^ABCD/E/F+GH",运算符优先级为^>*/>-+,它的中缀形式为(C)A  A^B*C-D+E/F/G+H  B A^B*(C-D)+(E/F)/G+H  C  A^B*C-D+E/(F/(G+H))  D A^B*(C-D)+ 查看详情

1~n的全排列--阅文集团2018校招笔试题

题目大意:给定整数n,求出1~n的全排列示例输入:n=3输出:[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]1importjava.util.Scanner;2importjava.util.ArrayList;34publicclassMain{5privatevoidfunc(ArrayList<Integer>nArray,Arra 查看详情

兆易创新9月校招笔试题_ic设计/验证

       还有器件岗位的笔试题:1、CMOS中哪些制造步骤中用到了离子注入,需要注意哪些?2、有哪些薄膜制备方法?各有什么优缺点?3、COMS的制作步骤,简要叙述。4、载流子的输运方式有哪些,简要叙... 查看详情

天上掉馅饼--移动研究院2018校招笔试题

题目:天上掉馅饼时间限制:C/C++语言1000MS;其他语言3000MS内存限制:C/C++语言131072KB;其他语言655360KB题目描述:大家都知道“天上不会掉馅饼”这句话,但是有一天,小明在回学校的路上,天上还真掉起了馅饼。小明的人品实... 查看详情

京东笔试——秋招笔试题(代码片段)

#include<iostream>#include<cstdio>#include<algorithm>#include<set>usingnamespacestd;/*题解: a^b=c^d, 底数相等的情况: 1)底数为1,即1^b=1^d的情况:n*n 2)底数不为1,即a^b=a^b的情况:(n-1)*n 底数不相等的情况: 拆成(i 查看详情

携程2019校招编程题(代码片段)

携程今年的机试题为20道选择+3编程由于今天最后提交时第三题编程未通过,交卷之后想出来的解法这里记录一下。importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;//携程3publicclassLRUpublicstaticvoidmain(String[]args)Scannersc=newScanner( 查看详情

阿里巴巴2021秋招笔试题20210806(代码片段)

源代码:https://gitee.com/shentuzhigang/mini-project/tree/master/exam-alibaba/exam-alibaba-20210806第一题题目描述大概定义了一年mmm个月,一个月ddd天,一周www天已知mmm,ddd,www求第kkk年,第jjj月 查看详情

序列和-------一道大厂秋招笔试题(代码片段)

题目:给出一个正整数N和长度L,找出一段长度大于等于L的连续非负整数,他们的和恰好为N。答案可能有多个,我我们需要找出长度最小的那个。例如N=18L=2:5+6+7=183+4+5+6=18都是满足要求的,但是我们输出更短的567综合网上给出... 查看详情