叠积木【Java】
积⽊宽⾼相等,长度不等,每层只能放⼀个或拼接两个积⽊,要求每层长度相等,求最⼤层数。
【输入描述】
给定积⽊的长度,以空格分隔,例如:3 6 6 3。
【输出描述】
如果可以搭建,返回最⼤层数,如果不可以返回-1。
【示例一】
-
输入
3 6 6 3
-
输出
3
【示例二】
-
输入
1 4 2 3 6
-
输出
-1
【解题思路】
- 读懂题目的要求,积木每一层只能是1块,或者2块拼接
- 必须每一层的长度相等,否则算为不可搭建,则输出
-1
- 分析规律:将积木长度进行排序后,最长的积木只能两种情况:1、单独一块去搭建;2、跟最小长度那一块去搭建
【代码】
import java.util.LinkedList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String s = input.nextLine(<