小米笔试第一题只A了71%,大佬帮忙看下为啥


import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num  = Integer.parseInt(sc.nextLine());
        int[] priceNum = new int[num];
        for(int i = 0;i<num;i++){
            priceNum[i] = Integer.parseInt(sc.nextLine());
        }
        Arrays.sort(priceNum);
        int sumMoney = Integer.parseInt(sc.nextLine());

        int result = 0;
        for(int i = priceNum.length - 1;i>=0;i--){
            if(priceNum[i] == 0){
                continue;
            }
            result += sumMoney / priceNum[i];
            sumMoney = sumMoney % priceNum[i];
            if(sumMoney == 0){
                break;
            }
        }
        if(result == 0){
            System.out.println(-1);
        }else if(sumMoney != 0){
            System.out.println(-1);
        }
        else{
            System.out.println(result);
        }
    }
}


#笔试题目##秋招##小米#
全部评论
贪心不是最优。。。
点赞 回复 分享
发布于 2019-09-06 20:41
贪心没考虑价格0 14% 贪心考虑价格0 71% 暴力法考虑0 86%
点赞 回复 分享
发布于 2019-09-06 20:44
小米商城吗…?72…我也不道为啥
点赞 回复 分享
发布于 2019-09-06 20:41
我用大根堆也是71
点赞 回复 分享
发布于 2019-09-06 20:40
leetcode322,原题
点赞 回复 分享
发布于 2019-09-06 20:40
你没有考虑物品价格为0,我添加了物品价格为0的情况,86%
点赞 回复 分享
发布于 2019-09-06 20:41
花完钱买东西这到题吗?这个用动态规划
点赞 回复 分享
发布于 2019-09-06 20:42
你的代码和我一模一样😂
点赞 回复 分享
发布于 2019-09-06 20:43
第一题只57,第二题没时间做😂
点赞 回复 分享
发布于 2019-09-06 20:45
2 2 3 100 用这个测试用例,你就知道为什么了
点赞 回复 分享
发布于 2019-09-06 20:48
我也是71,动态规划,但是超时了,我觉得应该是可以增加变量,存放已经查找了的结果
点赞 回复 分享
发布于 2019-09-06 20:49
跟你几乎一样,但我只有43%😥
点赞 回复 分享
发布于 2019-09-06 20:50
贪心不最优,这题用动态规划
点赞 回复 分享
发布于 2019-09-06 20:50
我很好奇你们是怎么知道是leetcode原题的,都刷到过吗😂
点赞 回复 分享
发布于 2019-09-06 20:55
这个题不就是动态规划吗,dp[i][j] = dp[i-1][j-k*v[i]]+k  k从0开始到j/v[i]下界,取使得等号右边最小的,我这么想有问题?咋A得那么少
点赞 回复 分享
发布于 2019-09-06 21:00
贪心只能用在价格确定的 现在价格不确定只能dp
点赞 回复 分享
发布于 2019-09-06 21:00
这题是个多重背包,不是贪心
点赞 回复 分享
发布于 2019-09-06 21:03
我只有14%
点赞 回复 分享
发布于 2019-09-07 00:17

相关推荐

点赞 评论 收藏
分享
评论
3
12
分享
牛客网
牛客企业服务