9.6——秋招的第一次笔试(用友)

引言

小菜鸡刚开始自己的秋招,投了十几家终于有一个笔试了,记录一下自己的第一场比试。

用友笔试

前一天投的,当天就给我发了测评和笔试,有点子震惊,开始之前还是很忐忑的。

题目

四个问题,分值15,15,20,40;

第一题 力扣的跳跃游戏

        我好菜啊,之前做过,但是过了很久,思路也没那么清晰了,第一次做ACM处理输入很拉跨,前十几分钟都在处理输入,没导包,一直报错。

        最后在第四十分钟,把这个ac了我真是笨蛋。

class Solution {
    public boolean canJump(int[] nums) {
       int end = 0;
       int maxPosition = 0; 
    for(int i = 0; i < nums.length - 1; i++){
        //找能跳的最远的
        maxPosition = Math.max(maxPosition, nums[i] + i); 
        if( i == end){ //遇到边界,就更新边界,并且步数加一
            end = maxPosition;
        }
    }
    return end>=(nums.length - 1);
    }
}

第二题 类似力扣的三数之和

        我也是用的排序+双指针,应该是有条件写少了,最后通过了75%,看不见用例好烦。

贴一个三数之和。

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        Arrays.sort(nums);
        List<List<Integer>> res =new ArrayList<>();
        for(int k=0;k<nums.length-2;k++){
            if(nums[k]>0){
                break;
            }
            if(k>0&&nums[k]==nums[k-1]){
                continue;
            }
            int i=k+1;
            int j=nums.length-1;
            while(i<j){
                int sum=nums[k]+nums[i]+nums[j];
                if(sum<0){
                    while(i<j&&nums[i]==nums[++i]){}
                }else if(sum>0){
                    while(i<j&&nums[j]==nums[--j]){}
                }else{
                    res.add(new ArrayList<Integer>(Arrays.asList(nums[k],nums[i],nums[j])));
                     while(i<j&&nums[i]==nums[++i]){}
                     while(i<j&&nums[j]==nums[--j]){}
                }
            }
        }
        return res;
    }
}

第三题,点石成金

大意是有一个m*n的方阵,每一次你可以选择一个位置点石成金,每次会点石成金一个正方形的区域,遇到边界或者已经点金的就停下,问全部点金的最小代价。

因为不知道用例,自己也想不到什么特殊情况,我就用了贪心,每次取一个短边点一个正方形,不断重复,最后通过70%

第四题没看懂题目也没记住(awsl)0%

总结

        不太习惯自己处理输入输出,scanner用的很差劲浪费时间,而且自己做过的题还需要强化,dp掌握的也不好,需要再刷。

        加起来通过了2.45,许愿一个面试,估计也会被狠狠拷打,八股背了忘忘了背,感觉一点不熟练,有待检验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值