1. 程式人生 > >今日頭條校招筆試

今日頭條校招筆試

4
20 23 35 40
滿足:
1.  a<=b<=c
2. b-a<=10
3. c-b<=10
求最少還需要多少個數才能滿足。
每套試卷3道題,且不能重複。
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Scanner;

public class Main {

    private static void pop(ArrayDeque deque, int n) {
        for (int i = 0; i < n; i++) {
            deque
.pollLast(); } } public static void main(String[] args) { Scanner cin = new Scanner(System.in); while (cin.hasNext()) { int n = cin.nextInt(); int a[] = new int[n]; for (int i = 0; i < n; i++) { a[i] = cin.nextInt(); } Arrays.sort(a); ArrayDeque<Integer> deque
= new ArrayDeque<>(); int ans = 0; for (int i = 0; i < n; i++) { if (!deque.isEmpty()) { while (!deque.isEmpty() && a[i] - deque.peek() > 10) { deque.offerFirst(deque.peek() + 10); ans++; while
(deque.size() >= 3) { pop(deque, 3); } } } deque.offerFirst(a[i]); while (deque.size() >= 3) { pop(deque, 3); } } System.out.println(ans + (deque.size() == 0 ? 0 : 3 - deque.size())); } } }