第1题
题目描述:
给定一个值
x
x
x和一个二叉树root,请返回二叉树的最优质路径。
最优质路径定义为:从根节点出发开始遍历,在整个树的所有遍历路径中,路径上所有节点的和刚好等于给定值,如果存在多天的话,则返回最短的那条路径,如果多条路径长度一样,则返回最左边的那条路径,不存在则返回空。
树中的节点值都是大于0的整数,节点的值可能重复,
x
x
x也是一个大于0的整数。
输入描述:
输入分为两行,第一行是二叉树按照从上往下,从左到右遍历之后的结果,存放在数组中,如果遇到节点为空,则用null表示。
这个二叉树对应的数组展开结果就是:[3,1,5,2,null,4,6],整个数组内容作为第一行输入,其中数组元素的值就是树中节点对应的值。
第二行是一个大于等于0的整数,输入长度不超过1000。
输出描述:
一条路径,存储在数组当中如果是空,则直接返回[]。
示例1:
第2题
题目描述:
给定一个数组,求其最长摇摆子数组的长度。摇摆子数组是一种特殊的数组:
(1) 数组元素前后的大小关系有规律的变化,出去头尾之外,每两次连续递增或递减之后需要发生一次”摇摆“,也就是递增(递减)关系变成递减(递增);
(2) 子数组必须至少包含两次递增和递减。
输入描述:
第一行输入时数组的长度,第二行输入完整的数组,每个数组元素之间按照空格隔开,数组元素个数在1~100000之间
输出描述:
直接输出最长摇摆子数组的大小,如果不存在这样的摇摆子数组则输出0。
示例1:
输入:5
1 2 3 2 1
输出:5
第3题
题目描述:
中国传统吉祥数字是
6
6
6,现给定一个数组,请找出一个子集合,集合中数字的和能被6整除,且和是所有满足要求的子集合里面的最大值,如果找不到则返回-1。
输入描述:
第一行输入为数组大小
n
n
n,1<=n<=100000
第二行为数组nums,数组数字之间用空格区分,sum(nums)<=100000000
输出描述:
最大和整数,如果找不到则返回-1
示例1:
输入:4
6 8 4 3
输出:18
第4题
题目描述:
满减活动是指用户单次购买的商品价格总数达到一定数额门槛T后,会在下单结算时直接给用户减免一定的金额y,如常见的满1000减100活动。(为简化问题,每次结算最多只能减一次,如满1000减100活动,当满2000时也只能减一次100).而用户为了优惠的最大化,一般都会尽量控制购买的商品金额累计刚好超过满减要求数额T,超过的部分越小越好,从而获得最大的折扣力度。
现有一个严选粉丝用户小王,他是一个把优惠利用到极致的人,现在他购物车里有若干商品,并不要求一次性都买完,只是想利用促销活动,把其中的部分商品先下一个订单,获取最大优惠即可。(一种商品不能重复购买)请帮他计算如何组合商品,可以满足他的要求。
输入描述:
第一行为满减活动的门槛T,为整数,
第二行为其满减活动的减去金额y,为整数,
第三行为小王购物车里的商品价格列表
x
1
,
x
2
,
.
.
.
x
m
x_1,x_2,...x_m
x1,x2,...xm,均为正数,用空格分隔,
0
<
x
i
<
110000
0 \lt x_i \lt 110000
0<xi<110000,
0
<
i
<
10000
0 \lt i \lt 10000
0<i<10000
输出描述:
小王该次下单,最后要实付的金额,为一个整数,如果最后总金额没有达到满减要求,输出商品原来总价即可。
示例
输入:100
10
47 59 42 54
输出:91