搜狗2019秋招后端工程师部分编程题合集(第一场)

时长:120分钟 总分:100分

100浏览 0人已完成答题

题型介绍
题型 填空题
数量 2
1.
糖果游戏
问题详情

小明和小红都很喜欢吃糖果,今天他们一起玩一个糖果游戏。他们将装有不同数量的透明糖果盒子摆放成一个环,现在两人依次选择糖果盒子,小明先拿,且小明第一次挑选可以选择环中任意一个糖果盒子,将环分割成一列有首尾的序列,之后两人每次选择时只能从剩余的糖果盒子序列的行首或者行尾挑选,直到两人将糖果盒子全部拿完,最后糖果多的为胜者。假设两人都希望自己是最后的赢家,且糖果的总数是奇数,现给定一个糖果的环,用一个数组表示环中的各糖果盒子中糖果的数量,数组首尾相连成环,元素个数为N。请输出胜利者比失败者至少多拿多少糖果。 输入描述: 第一行:N
第2至N+1行:每行一个数,代表糖果数输入样例: 4 1 55 41 2 输出描述: 一个数,请输出胜利者比失败者多拿多少糖果输出样例 15
2.
数字序列
问题详情

一个由若干个取值范围在[1,2^31-1]的整数构成长度为N的数字序列,其中N<=5,000,000;求该数字序列上一段最小的连续区间的长度,要求该区间内正好包含了所有不同的数字,如果存在多个这样的区间,按照出现的顺序有序输出所有的区间起始和结束位置,序列的位置编号从1到N,其中最小的区间长度不会超过10,000。 输入描述: 第一行:N
第2至N+1行:每行1个数输入样例: 10 1 1 3 4 6 6 5 1 3 3 输出描述: 第一行:最小的区间长度 区间个数X (以空格进行分隔)
第二行:X个区间的起始和结束位置,按照出现的顺序有序输出,多个区间之间以空格分隔,每个区间的输出格式如下所示:[start,end],最后以换行结尾输出样例 6 3 [2,7] [3,8] [4,9]