8.31度小满&茄子&广联达笔试总结

一度小满和茄子冲突了,还有个能延后到九点的广联达。两台电脑一起答。
度小满的三道编程题
p1:数组及连续子数组中最大值/最小值为k的子数组总数。题目看错了没注意连续,后来看到大佬的双循环才知道这个。没写出来。
p2:题目忘了,好像是什么二维数组(希望好心人能告知一下QAQ)没回溯出来 //路过大佬告知是类似机器人走格子
p3:DNA ...不会。
茄子:一道编程题,lc原题64.最小路径和
广联达:
p1:暴力,用了个哈希表记录下标,两个循环找有无逆序的。过了
import java.lang.reflect.Array;
import java.util.*;

public class p1 {

    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
       int []sent=new int[n];
       int []rec=new int[n];
       int cnt=0;
       HashMap<Integer,Integer>map=new HashMap<>();
        for (int i = 0; i < n; i++) {
            sent[i]=sc.nextInt();
            map.put(sent[i],i );
        }
        for (int i = 0; i < n; i++) {
            rec[i]=sc.nextInt();

        }
            if(n==0||n==1)
                System.out.println(0);
        for (int i = 0; i < n; i++) {
            for (int j = i; j <n ; j++) {
                  if(  map.get(rec[i])>map.get(rec[j])) {
                      cnt++;
                      break;
                  }
            }
        }

        System.out.println(cnt);
    }


}
p2:n个座位,m条规定 n和l之间最多坐x个人。问整辆车最多做几个人。
无从下手,感觉很像做过的某个动归题,想不起来。

以上没做出来的都在看大佬们的解答。
-----------------------------------
9.1更新
广联达第二题,有大佬说像剪视频,有人说可以参考合并区区间。于是我去合并区间(lc56题),做了。然后照葫芦画瓢写了如下代码。跑了一下,目前的问题是,如果有个区间不让坐人(最大乘坐人x=0)而这个区间与其他重合,应该怎么处理。希望有大佬能指点指点。
import java.lang.reflect.Array;
import java.util.*;

public class p2 {

    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[][] arr = new int[m][3];

        for (int i = 0; i < m; i++) {
            arr[i][0] = sc.nextInt();
            arr[i][1] = sc.nextInt();
            arr[i][2] = sc.nextInt();
        }
        Arrays.sort(arr, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                if(o1[0]==o2[0]){
                    return o1[1]-o2[1];
                }
                return o1[0]-o2[0];
            }
        });
        int maxseat=0;
        int i=0;

        List<int[]> res=new ArrayList<>();
        while (i<arr.length){
            int l=arr[i][0];
            int r=arr[i][1];
            int x=arr[i][2];
            while (i<arr.length-1&&arr[i+1][0]<=r){
               if(arr[i][2]==0&&arr[i+1][2]>r-arr[i+1][1]){
                  maxseat=Math.max(arr[i+1][2]-(r-arr[i+1][1]),maxseat);
               }

               else {
                   maxseat=Math.max(arr[i][2],arr[i+1][2]);
               }
                i++;
            }
            i++;
        }
        System.out.println(maxseat);
    }


}


等我把晚上四场笔试做了来再来填坑。

#笔试#
全部评论
同广联达+茄子
点赞 回复 分享
发布于 2022-08-31 22:57 广东

相关推荐

牛客154160166号:9月底还给我发短信,好奇怪,我24届的
点赞 评论 收藏
分享
2 5 评论
分享
牛客网
牛客企业服务