链家笔试编程题题解

1.Light(去重即可)
import java.util.HashSet;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        HashSet<Integer> hSet=new HashSet<>();
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        for(int i=0;i<n;i++)
        {
            int k=scanner.nextInt();
            for(int j=0;j<k;j++)
            {
                int value=scanner.nextInt();
                hSet.add(value);
            }
        }
        System.out.println(hSet.size());

    }

}
2.***(菲波那切数列)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner=new Scanner(System.in);
        
        int h=2;
        ArrayList<Integer> arrayList=new ArrayList<>();
        arrayList.add(1);
        
        while(h<=100000)
        {
            arrayList.add(h);
            int d=arrayList.size();
            h=arrayList.get(d-1)+arrayList.get(d-2);
            
        }
        
        while(scanner.hasNext())
        {
            int n=scanner.nextInt();
            int ans=0;
            for(int i=0;i<n;i++)
            {
                if(arrayList.get(i)<=n)
                    ans++;
                else
                    break;
            }
                
            System.out.println(n-ans);
        }

    }

}

#笔试题目#
全部评论
我把第一题想复杂了,同时按下居然是亮的。。。。我擦啊
点赞 回复 分享
发布于 2018-04-08 21:01
第一道题去重不对吧,我的代码也是去重,但只ac出10%
点赞 回复 分享
发布于 2018-04-08 21:02
第二题ac了么
点赞 回复 分享
发布于 2018-04-08 21:03
居然思路是惊人的一致,就是第二题我还想了好久dp最后10分钟才想起来的
点赞 回复 分享
发布于 2018-04-08 21:07
这么坑的么。。同时按下居然是亮着的。第二题有多组输入。。
点赞 回复 分享
发布于 2018-04-08 21:07
楼主能说下第二题思路吗  if(arrayList.get(i)<=n)                     ans++; 没太看懂是什么意思啊
点赞 回复 分享
发布于 2018-04-08 21:11
链家这题也太坑了吧,就不能多给几组测试样例让我们知道你的意图。。。
点赞 回复 分享
发布于 2018-04-08 21:14
作者:riverding 链接:https://www.nowcoder.com/discuss/72602?type=0&order=0&pos=11&page=1 来源:牛客网 #include <iostream>  using namespace std; int main() {     int i,n;     int count=0;     int a=2;     int b=3;     while (cin>>n) {         for(i=4;i<=n;i++){             if(i<a+b){                 count++;             }             else{                 a=b;                 b=i;             }         }         cout<<count<<endl;         count=0;     a=2;     b=3;     }     return 0; }
点赞 回复 分享
发布于 2018-04-08 21:17
第一题Ac了?这么简单的吗,天。
点赞 回复 分享
发布于 2018-04-08 21:18
日  我想骂人  ,我直接用不该用数组接收传入的值,直接定义这个值接收输入就能AC了
点赞 回复 分享
发布于 2018-04-08 21:24

相关推荐

一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务