【爱奇艺】2019校招算法工程师笔试题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/program_developer/article/details/82891219

一、清雨的自助餐

题目描述:

清雨又在吃自助餐了。

排在清雨面前的有N种食物,排成一排,清雨可以选择其中的若干种食物,但是不能连续选择相邻的食物。因为清雨很挑食,当所有食物都不合味口时,他可以一种都不选,即一个都不选也算为一种方法。

请问他有多少种选择食物的方法?

输入:

一个整数n(1 <= n <= 90)

输出:

一个正整数表示答案

样例输入:

3

样例输出:

5

 Hint

样例解释:有3种食物,方案为1、2、3、13、不选,共5种。

动态规划解法,已经AC的代码。


import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		long[] memo = new long[n+1];
		Arrays.fill(memo, -1);
		memo[0] = 1;
		memo[1] = 2;
		for(int i=2; i<=n; i++) {
			if(memo[i] == -1) {
        		memo[i] = memo[i-1] + memo[i-2];
        	}
		}
		System.out.println(memo[n]);
	}

}

二、散散的树

题目描述:

散散掌握着一片森林,这片森林有N棵数,高度分别为ai,现在散散想要长度为m的木头,散散的锯子有一个缺陷,必须同时切割所有的树木,即如果有高度为10,15,12的木头,散散只能确定锯子的高度,如果锯子的高度为13,那么只能将高度为15的树木切下长度为2的木头,锯子高度为8,则分别切下2,74的木头,共13长度。请问锯子的高度最高可以多高呢?

n <= 10^5

m <= 10^9

ai <= 10^9

输入:

第一行n和m

第二行n个整数ai

输出:

一个高度

样例输入:

5 20

4 42 40 26 46

样例输出:

36

 

展开阅读全文

没有更多推荐了,返回首页