链家java_链家2018春招Java工程师编程题题解
Light
題目描述
在小紅家里面,有n組開(kāi)關(guān),觸摸每個(gè)開(kāi)關(guān),可以使得一組燈泡點(diǎn)亮?,F(xiàn)在問(wèn)你,使用這n組開(kāi)關(guān),最多能夠使得多少個(gè)燈泡點(diǎn)亮呢?
輸入
第一行一個(gè)n,表示有n組開(kāi)關(guān)。接下來(lái)n行,每行第一個(gè)整數(shù)為k,表示這個(gè)開(kāi)關(guān)控制k個(gè)燈泡,接下來(lái)k個(gè)整數(shù),表示控制的燈泡序號(hào)。
滿足:1<=n<=1000 、1<=k<=1000 、序號(hào)是在int范圍內(nèi)正整數(shù)。
輸出
輸出最多多少個(gè)燈泡點(diǎn)亮。
樣例輸入
3
1 1
1 2
2 1 2
樣例輸出
2
思路
這道題是一個(gè)去重的問(wèn)題,即多個(gè)開(kāi)關(guān)可能按下都使同一個(gè)開(kāi)關(guān)亮,那么可以利用HashSet去重。
代碼實(shí)現(xiàn)
package lianjia.demo1;
import java.util.HashSet;
import java.util.Scanner;
/**
* 題目描述:
* 在小紅家里面,有n組開(kāi)關(guān),觸摸每個(gè)開(kāi)關(guān),可以使得一組燈泡點(diǎn)亮。
* 現(xiàn)在問(wèn)你,使用這n組開(kāi)關(guān),最多能夠使得多少個(gè)燈泡點(diǎn)亮呢?
* 輸入
* 第一行一個(gè)n,表示有n組開(kāi)關(guān)。
* 接下來(lái)n行,每行第一個(gè)整數(shù)為k,表示這個(gè)開(kāi)關(guān)控制k個(gè)燈泡,接下來(lái)k個(gè)整數(shù),表示控制的燈泡序號(hào)。
* 滿足:
* 1<=n<=1000
* 1<=k<=1000
* 序號(hào)是在int范圍內(nèi)正整數(shù)。
* 輸出
* 輸出最多多少個(gè)燈泡點(diǎn)亮。
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k;
int x;
HashSet 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根木棍的長(zhǎng)度為i,小紅現(xiàn)在很開(kāi)心。她想選出其中的三根木棍組成美麗的三角形。但是小明想捉弄小紅,想去掉一些木棍,使得小紅任意選三根木棍都不能組成三角形。請(qǐng)問(wèn)小明最少去掉多少根木棍呢?
輸入
本題包含若干組測(cè)試數(shù)據(jù)。對(duì)于每一組測(cè)試數(shù)據(jù)。第一行一個(gè)n,表示木棍的數(shù)量。滿足 1<=n<=100000
輸出
輸出最少數(shù)量
樣例輸入
4
樣例輸出
1
思路
如果兩邊和大于第三邊,那么要去掉的木棍數(shù)加1,否則都加1,繼續(xù)判斷
代碼實(shí)現(xiàn)
package lianjia.demo2;
import java.util.Scanner;
/**
* 題目描述:
* 在迷迷糊糊的大草原上,小紅撿到了n根木棍,第i根木棍的長(zhǎng)度為i,小紅現(xiàn)在很開(kāi)心。
* 她想選出其中的三根木棍組成美麗的三角形。
* 但是小明想捉弄小紅,想去掉一些木棍,使得小紅任意選三根木棍都不能組成三角形。
* 請(qǐng)問(wèn)小明最少去掉多少根木棍呢?
* 輸入
* 本題包含若干組測(cè)試數(shù)據(jù)。
* 對(duì)于每一組測(cè)試數(shù)據(jù)。
* 第一行一個(gè)n,表示木棍的數(shù)量。
* 滿足 1<=n<=100000
* 輸出
* 輸出最少數(shù)量
*/
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;
}
}
}
總結(jié)
以上是生活随笔為你收集整理的链家java_链家2018春招Java工程师编程题题解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: win7电脑后面的插孔没声音怎么设置 电
- 下一篇: java软件字如何放大_放大Java S