鏈家2018春招Java工程師編程題題解


Light

題目描述

在小紅家里面,有n組開關,觸摸每個開關,可以使得一組燈泡點亮。現在問你,使用這n組開關,最多能夠使得多少個燈泡點亮呢?

輸入

第一行一個n,表示有n組開關。接下來n行,每行第一個整數為k,表示這個開關控制k個燈泡,接下來k個整數,表示控制的燈泡序號。

滿足:1<=n<=1000 、1<=k<=1000 、序號是在int范圍內正整數。

輸出

輸出最多多少個燈泡點亮。

樣例輸入

3

1 1

1 2

2 1 2

樣例輸出

2

思路

這道題是一個去重的問題,即多個開關可能按下都使同一個開關亮,那么可以利用HashSet去重。

代碼實現

package lianjia.demo1;

import java.util.HashSet;
import java.util.Scanner;

/**
 * 題目描述:
 * 在小紅家里面,有n組開關,觸摸每個開關,可以使得一組燈泡點亮。
 * 現在問你,使用這n組開關,最多能夠使得多少個燈泡點亮呢?
 * 輸入
 * 第一行一個n,表示有n組開關。
 * 接下來n行,每行第一個整數為k,表示這個開關控制k個燈泡,接下來k個整數,表示控制的燈泡序號。
 * 滿足:
 * 1<=n<=1000
 * 1<=k<=1000
 * 序號是在int范圍內正整數。
 * 輸出
 * 輸出最多多少個燈泡點亮。
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k;
        int x;
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            k = sc.nextInt();
            for (int j = 0; j < k; j++) {
                x = sc.nextInt();
                set.add(x);
            }
        }
        System.out.println(set.size());
    }
}

triangle

題目描述

在迷迷糊糊的大草原上,小紅撿到了n根木棍,第i根木棍的長度為i,小紅現在很開心。她想選出其中的三根木棍組成美麗的三角形。但是小明想捉弄小紅,想去掉一些木棍,使得小紅任意選三根木棍都不能組成三角形。請問小明最少去掉多少根木棍呢?

輸入

本題包含若干組測試數據。對於每一組測試數據。第一行一個n,表示木棍的數量。滿足 1<=n<=100000

輸出

輸出最少數量

樣例輸入

4

樣例輸出

1

思路

如果兩邊和大於第三邊,那么要去掉的木棍數加1,否則都加1,繼續判斷

代碼實現

package lianjia.demo2;

import java.util.Scanner;

/**
 * 題目描述:
 * 在迷迷糊糊的大草原上,小紅撿到了n根木棍,第i根木棍的長度為i,小紅現在很開心。
 * 她想選出其中的三根木棍組成美麗的三角形。
 * 但是小明想捉弄小紅,想去掉一些木棍,使得小紅任意選三根木棍都不能組成三角形。
 * 請問小明最少去掉多少根木棍呢?
 * 輸入
 * 本題包含若干組測試數據。
 * 對於每一組測試數據。
 * 第一行一個n,表示木棍的數量。
 * 滿足 1<=n<=100000
 * 輸出
 * 輸出最少數量
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i, n;
        int count = 0;
        int a = 2;
        int b = 3;
        while (sc.hasNext()) {
            n = sc.nextInt();
            for (i = 4; i <= n; i++) {
                if (a + b > i) {
                    count++;
                } else {
                    a = b;
                    b = i;
                }
            }
            System.out.println(count);
            count = 0;
            a = 2;
            b = 3;
        }
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM