9.19 小红书笔试 AC 代码

1. ABCD 四个组件拼装,判断合格的同时修改数量,最后取四者中最小值即可。
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a1 = sc.nextInt(), a2 = sc.nextInt(), a3 = sc.nextInt(), a4 = sc.nextInt(), x = sc.nextInt();
        int[] a = {a1, a2, a3, a4};
        sc.nextLine();
        for (int i = 0; i < 4; i++) {
            String str = sc.nextLine();
            String[] nums = str.split(" ");
            for (String num : nums) {
                if (Integer.parseInt(num) < x) {
                    a[i] = a[i] - 1;
                }
            }
        }
        int min = Arrays.stream(a).min().getAsInt();
        System.out.println(min);
    }

2. 典型的动态规划:当前位置 dp[i] 的最小值,由之前 k 个元素决定。
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), k = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        int[] dp = new int[n + 1];
        Arrays.fill(dp, 100);
        dp[0] = 0;
        for (int i = 1; i < n; i++) {
            for (int j = 1; j <= k; j++) {
                if (i - j < 0) break;
                dp[i] = Math.min(dp[i], dp[i - j] + Math.max(0, arr[i] - arr[i - j]));
            }
        }
        System.out.println(dp[n - 1]);
    }
3. 滑动窗口:当窗口内任一元素达到 k 个时,窗口收缩。窗口收缩时,当前子数组右边的 n - right 个元素逐一加入该子数组,都满足题目条件,所以统计时是加 n - right 而非加 1。
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), k = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        int left = 0, right = 0;
        int cnt = 0;
        Map<Integer, Integer> window = new HashMap<>();
        while (right < n) {
            int num1 = arr[right];
            window.put(num1, window.getOrDefault(num1, 0) + 1);
            while (window.get(num1) == k) {
                int num2 = arr[left];
                left++;
                window.put(num2, window.get(num2) - 1);
                cnt = cnt + (n - right);  }
            right++;
        }
        System.out.println(cnt);
    }



#笔试##小红书##秋招#
全部评论
大哥牛逼,第三题窗口边界不知道怎么处理,索性用暴力通过了45
4 回复 分享
发布于 2022-09-19 18:51 上海
最后一题我只有82
2 回复 分享
发布于 2022-09-19 19:57 重庆
太强了! 没做出来别灰心,瀚博半导体秋招也开始了啦!投递链接:vastaitech.zhiye.com/campus/jobs 内部推荐码:EVKMA1,简历第一时间送到 HR 面前!内推进度自主查询 https://neitui.italent.cn/vastaitech/candidate,不用再等待
1 回复 分享
发布于 2022-09-20 10:38 上海
最后一题和题主一样思路 该死的下标写错了
1 回复 分享
发布于 2022-09-19 19:20 福建
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-22 13:49 北京
8.28 ak现在还没消息😅
点赞 回复 分享
发布于 2022-09-21 14:45 湖南
2.55
点赞 回复 分享
发布于 2022-09-20 09:48 安徽
看来都是巨佬
点赞 回复 分享
发布于 2022-09-19 21:29 上海
第三题没来得及作,k是啥来着?
点赞 回复 分享
发布于 2022-09-19 21:15 四川
小红书编程题ac2道可以进面嘛
点赞 回复 分享
发布于 2022-09-19 20:46 湖北
小红书的题做的太舒服了,45分钟就做完了hhh
点赞 回复 分享
发布于 2022-09-19 20:28 广东
ak了
点赞 回复 分享
发布于 2022-09-19 18:59 上海

相关推荐

评论
31
69
分享

创作者周榜

更多
牛客网
牛客企业服务