校招真题练习030 丰收(网易)

丰收

题目描述
又到了丰收的季节,恰逢小易去牛牛的果园里游玩。
牛牛常说他对整个果园的每个地方都了如指掌,小易不太相信,所以他想考考牛牛。
在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往右数第x个苹果是属于哪一堆的。
牛牛觉得这个问题太简单,所以希望你来替他回答。

输入描述:
第一行一个数n(1 <= n <= 105)。
第二行n个数ai(1 <= ai <= 1000),表示从左往右数第i堆有多少苹果
第三行一个数m(1 <= m <= 105),表示有m次询问。
第四行m个数qi,表示小易希望知道第qi个苹果属于哪一堆。

输出描述:
m行,第i行输出第qi个苹果属于哪一堆。

 1 def main():
 2     N = int(input())
 3     apples = list(map(int,input().split()))
 4     # N = 5
 5     # apples = [2,7,3,4,9]
 6
 7     apples.insert(0,0)
 8     for i in range(1,N+1):
 9         apples[i] += apples[i-1]
10
11     M = int(input())
12     questions = list(map(int,input().split()))
13     # print(apples)
14     # M = 3
15     # questions = [1,25,11]
16     for i in range(M):
17         cur = questions[i]
18         l,r = 0,N
19         while l <= r:
20             m = l + (r - l) // 2
21             if cur == apples[m]:
22                 print(m)
23                 break
24             elif cur < apples[m]:
25                 if m - 1 >= 0 and cur > apples[m-1]:
26                     print(m)
27                     break
28                 else:
29                     r = m - 1
30             elif cur > apples[m]:
31                 if m + 1 <= N and cur < apples[m+1]:
32                     print(m+1)
33                     break
34                 else:
35                     l = m + 1
36             else:
37                 print(‘error‘)
38
39 if __name__ == ‘__main__‘:
40     main()

算法思路:二分查找(变形)

寻找有序数组中右边界值。可以使用:itertools.accumulate()和bisect.bisect_left()方法简化代码。

原文地址:https://www.cnblogs.com/asenyang/p/11290770.html

时间: 2024-07-30 11:35:32

校招真题练习030 丰收(网易)的相关文章

校招真题练习023 俄罗斯方块(网易)

俄罗斯方块 题目描述小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块.因为它比较古老,所以规则和一般的俄罗斯方块不同.荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分.有一天,小易又开了一局游戏,当玩到第 m 个方块落下时他觉得太无聊就关掉了,小易希望你告诉他这局游戏他获得的分数. 输入描述:第一行两个数 n, m第二行 m 个数,c1, c2, ... , cm , ci 表示

校招真题练习021 迷路的牛牛(网易)

迷路的牛牛 题目描述牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了.虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他. 输入描述:每个输入包含一个测试用例.每个测试用例的第一行包含一个正整数,表示转方向的次数N(N<=1000).接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转. 输出描述:输出牛牛最后面向的方向,N表示北,S表示南,E表示东,W表示西. 1 n = int(input().strip()) 2 D = input().s

校招真题练习027 小易的字典(网易)

小易的字典 题目描述小易在学校中学习了关于字符串的理论, 于是他基于此完成了一个字典的项目.小易的这个字典很奇特, 字典内的每个单词都包含n个'a'和m个'z', 并且所有单词按照字典序排列.小易现在希望你能帮他找出第k个单词是什么. 输入描述:输入包括一行三个整数n, m, k(1 <= n, m <= 100, 1 <= k <= 109), 以空格分割. 输出描述:输出第k个字典中的字符串,如果无解,输出-1. 1 def Cnm(a, b): 2 ans =1 3 for

2018 拼多多 校招真题 最大乘积

最大乘积 时间限制:1秒 空间限制:32768K 热度指数:8197 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE. 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 示例1 输入 3 4 1 2 输出 8 思路分析:看到这个题目,下意识想到用Arrays.sort()排一下序, 因为输入的整数可以是负

2016校招真题之小球的距离

1.题目描述 小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数) 给定四个整数A,B,C,D,请返回所求结果. 测试样例: 100,90,80,70 返回:1020 2.代码实现 1 package com.wcy.october; 2 3 /** 4 * 时间:2016年10月16日 题目:小球的距离 5 * 题目描述:小东和三个

校招真题练习014 万万没想到之聪明的编辑(头条)

万万没想到之聪明的编辑 题目描述我叫王大锤,是一家出版社的编辑.我发现一个发现拼写错误的捷径: 1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优先考虑修复AABB,结果为AABCC 请听题:请实现大锤的自动校对程序 输入

校招真题练习019 毕业旅行问题(头条)

毕业旅行问题 题目描述小明目前在做一份毕业旅行的规划.打算从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次.由于经费有限,希望能够通过合理的路线安排尽可能的省一些路上的花销.给定一组城市和每对城市之间的火车票的价钱,找到每个城市只访问一次并返回起点的最小车费花销. 输入描述:城市个数n(1<n≤20,包括北京)城市间的车票价钱 n行n列的矩阵 m[n][n] 输出描述:最小车费花销 s 牛客网上对此题的python语言判断似乎有问题,一直超时,之前做剑指O

2019校招真题在线编程-牛牛找工作

时间限制:2秒 空间限制:65536K 热度指数:77851 本题知识点: 网易 Java工程师 C++工程师 iOS工程师 安卓工程师 运维工程师 前端工程师 算法工程师 PHP工程师 测试工程师 排序 模拟 贪心 题目描述 为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬.牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作.在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们.牛牛的小伙伴太多了,于是他只好把这个任务交给

精灵鼠从入口到出口最少减少速度(2019年哔哩哔哩校招真题)题解

题目以及输入输出描述: 题目很短.意思也很容易读懂. 题目要求就是  有一只老鼠,进入了一个迷宫,迷宫地图的大小为n*n.老鼠要从(起点)(0,0)坐标位置 到达 终点 (n-1,n-1)的位置. 老鼠的行动方式只有两种 —— 向下和向前. 每一个点都会让老鼠的速度降低(减少).求老鼠到达终点的时候最少减少的速度. 解题思路: 我们先考虑最后一步 到达终点,这一步可以从哪里来呢?根据题目分析因为老鼠只可以向下或者向前.所以到达终点(n-1,n-1)前,老鼠不是在(n-1,n-2), 就是在(n-