得物笔试ac

第一题以最后一个元素为中心一直往前环就可以

注意边界条件可能是a[1]-a[0]。

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < a.length; i++) {
            a[i] = sc.nextInt();
        }
        Arrays.sort(a);
        int max = a[1] - a[0];
        if (n > 2) {
            max = a[2] - a[0];
        }
        int i = n - 2;
        while (i >= 2) {
            int cur = Math.max(a[i + 1] - a[i - 1], a[i] - a[i - 2]);
            max = Math.max(max, cur);
            i -= 2;
        }
        System.out.print(max);
    }
}


第二题,记录所有数字求和到n的最小次数

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();
        int[] numbers = new int[N];
        for (int i = 0; i < N; i++) {
            numbers[i] = scanner.nextInt();
        }
        Arrays.sort(numbers);
        int result = findMinNumbers(numbers, M);
        if (result == Integer.MAX_VALUE) {
            System.out.println("No solution");
        } else {
            System.out.println(result);
        }
    }
    public static int findMinNumbers(int[] numbers, int target) {
        int[] dp = new int[target + 1];
        Arrays.fill(dp, Integer.MAX_VALUE);
        dp[0] = 0;
        for (int num : numbers) {
            for (int i = target; i >= num; i--) {
                if (dp[i - num] != Integer.MAX_VALUE) {
                    dp[i] = Math.min(dp[i], dp[i - num] + 1);
                }
            }
        }
        return dp[target];
    }
}

全部评论
lz,麻烦问下if (dp[i - num] != Integer.MAX_VALUE)这个判断语句可加可不加把
点赞 回复 分享
发布于 2023-08-25 11:03 重庆
老哥,得物笔试考啥,只有编程题吗
点赞 回复 分享
发布于 2023-08-29 00:45 浙江

相关推荐

点赞 评论 收藏
分享
和蔼:在竞争中脱颖而出,厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 15 评论
分享
牛客网
牛客企业服务