编辑代码

import java.util.Arrays;
import java.util.Comparator;

public class Main {

public static class Fuit {
    String fuit;
    int weight;
    int value;
    int unitValue;

    public Fuit(String fuit, int weight, int value) {
        this.fuit = fuit;
        this.weight = weight;
        this.value = value;
        this.unitValue = value / weight;
    }
}

public static void dictSort(Fuit[] fuitArr) {
    Arrays.sort(fuitArr, new Comparator<Fuit>() {
        public int compare(Fuit f1, Fuit f2) {
            return f2.unitValue - f1.unitValue;
        }
    });
}

public static int bag(int m, Fuit[] fuitArr, int n) {
    int[] array = new int[n];
    int s = 0;

    dictSort(fuitArr);

    for (int a = 0; a < n; a++) {
        if (fuitArr[a].weight <= m) {
            array[a] = 1;
            m -= fuitArr[a].weight;
            s += fuitArr[a].value;
        } else {
            s += fuitArr[a].unitValue * m;
            break;
        }
    }

    return s;
}

public static void main(String[] args) {
    Fuit[] fuitArr = {
            new Fuit("苹果", 15, 300),
            new Fuit("香蕉", 18, 180),
            new Fuit("橘子", 10, 150),
            new Fuit("猕猴桃", 9, 270)
    };

    System.out.println(bag(20, fuitArr, 4));
}
}