背包只为重量乐趣

时间:2015-12-09 12:01:57

标签: java knapsack-problem

我学习编程只是因为我要和开发人员一起工作并想知道他们做了什么我已经看过在线视频并解决了我在网上找到的2个引用的任务#34; easy"所以我认为id继续尝试中等..这是2个星期前,我仍然可以让这个程序按预期工作,我只是想让它工作,感觉放弃,再次尝试一些更容易的任务,但我仍然想做这个程序适合我的理智的缘故。 我让它工作得很好,我早些时候得到了一个人的帮助,他说我需要一个" reverseknapsack方法" 为了让它工作,所以我的问题是,是否有任何撒玛利亚人可以帮助我让它工作所以我可以继续从这个项目因为我真的不想离开它几乎完成并继续前进的东西更容易因为它真的会扼杀我的精神,我真的想学习并努力去了解开发人员,但是当我被困在同一个问题上一整周时,我很难保持积极而不仅仅是想放弃

package funtimes;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.*;
public class funfun {

public static void main(String[] args) throws Exception {
    BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
    int  s = 0;
    Scanner sc = new Scanner(System.in);




    int W = 1000;
    s = sc.nextInt();
    int[] wt = new int[s];

    for(int i = 0; i < s; i++) {

        wt[i] = sc.nextInt();


        }

int bestClassicSolution = knapsack(wt, W);
int differenceAgainstMaxWeight = W - bestClassicSolution;
int newMaxWeight = W + differenceAgainstMaxWeight;
int bestMaxSolution = reversedKnapsack(wt, newMaxWeight, W);
int differenceAgainstWeightAboveW = W - bestMaxSolution;

if (differenceAgainstWeightAboveW <= differenceAgainstMaxWeight){
    System.out.println(bestMaxSolution);
} else {
    System.out.println(bestClassicSolution);
}
}



public static int reversedKnapsack(int wt[], int W, int min) {
    return min;
    //similar to knapsack method, but the solution must be as small as possible and must be bigger than min variable
}


public static int knapsack(int wt[], int W) {
    int N = wt.length;
    int[][] V = new int[N + 1][W + 1];

    for (int col = 0; col <= W; col++) {
        V[0][col] = 0;
    }

0 个答案:

没有答案