学而思 前端笔试

选择题都是一些 机器学的和操作系统的东西。。 感觉很迷。
算法 第一道 AC
package com.company; import java.util.*; public class ListNode { public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        Set<Integer> set = new HashSet<>();
        String rs = ""; while (sc.hasNextInt()){ int tmp = sc.nextInt();
            tmp = Math.abs(tmp); if(!set.contains(tmp)){
                rs += tmp + " ";
                set.add(tmp);
            }
        }
        System.out.println(rs);
    }
}
第二道,感觉是时间复杂度高了,不记得堆排序咋写了,尴尬。 67%
大概思路  维持一个数组,让数组第一个为改数组的最小值。 不断筛选,等我去看看真正的堆排序咋写再补充一个。
package com.company; import java.util.*; public class dui { public static void main(String[] args){
        Scanner sc = new Scanner(System.in); float n = sc.nextFloat(); int[] tmp = new int[(int) Math.floor((Math.ceil(n*0.1*0.01)))]; for (int i=0;i<tmp.length;i++){
            tmp[i] = sc.nextInt();
        } getMin(tmp); for (int i=tmp.length;i<n;i++){ int in = sc.nextInt(); if (in > tmp[0]){
                tmp[0] = in; getMin(tmp);
            }
        } for (int i=0;i<tmp.length;i++){
            System.out.println(tmp[i]);
        }
    } public static void getMin(int[] tmp){ int index = 0; int min = tmp[0]; int tmep = 0; for (int i=0;i<tmp.length;i++){ if (tmp[i] == 0) continue; if (tmp[i] < min){
                index = i;
                min = tmp[min];
            }
        }
        tmep = min;
        tmp[0] = min;
        tmp[index] = tmep;
    }
}

#笔试题目##学而思##前端工程师##笔经#
全部评论
是有点迷。。
点赞 回复 分享
发布于 2019-09-02 21:00
我看到你发的帖才想起来,题目下面提示用堆。。我做的时候给忘了,用数组AC100%了,还不会C用的Java,感觉没分了哈哈
点赞 回复 分享
发布于 2019-09-02 20:52

相关推荐

写不来代码的小黑:这么小的城市能有做it的公司也不容易
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务