【问题标题】:JavaScript Minimize Bias problem solutionJavaScript Minimize Bias 问题解决方案
【发布时间】:2021-08-19 21:57:08
【问题描述】:

一个编程组织正在为几个程序员策划一场竞赛,每个程序员都有一定的评分。 (评分越高,程序员越好。)每个程序员与另一个程序员配对,他们的评分之间的差异称为“偏差量”。给定比赛中所有程序员的评分,通过优化规划程序员对可以实现的最小总偏差量是多少?

let ratings = [ 1, 3, 6, 6 ]

function minimizeBias(ratings) {
    // Write your code here
      
}

我怎样才能完成这个?

【问题讨论】:

  • "// 在这里写你的代码":这是你完成这个的地方。如果您遇到特定问题,请务必询问。但是请显示您的代码以及出错的地方。
  • 请帮帮我..我需要返回最小不同的对
  • 你需要用数组中的值完成什么?你希望这个函数的输出是什么?

标签: javascript node.js


【解决方案1】:
def minimizeBias(ratings):
ret_val =0    
for i in range(len(ratings)):
    diff =999999999
    index = 0
    if ratings[i] != -1:
        for j in range(i+1,len(ratings)):
            dif = abs(ratings[i] - ratings[j])
            if(dif<diff):
                index = j 
                diff = dif
    else:
        diff =0

    ratings[i] = -1
    ratings[index] = -1
    ret_val +=diff

#print(ratings)
return ret_val
              

【讨论】:

  • 这基本上是一个回溯问题..您必须考虑所有选项以找到最小偏差记住,您可以从 (1,2) 和 (2,3) 获得偏差 1,这里您可以决定如何进行..因此您必须使用从早期元素获得的差异回溯您的差异。
【解决方案2】:

function minimizeBias(ratings) {
    const noOfProgrammers = ratings.length;

    for (let i = 0; i < noOfProgrammers; i++) {
        for (let j = 0; j < noOfProgrammers - i - 1; j++) {
            if (ratings[j] < ratings[j + 1]) {
                const temp = ratings[j];
                ratings[j] = ratings[j + 1];
                ratings[j + 1] = temp;
            }
        }
    }

    let minBias = 0;
    for (let i = 0; i < noOfProgrammers; i = i + 2) {
        minBias = minBias + (ratings[i] - ratings[i + 1]);
    }
    console.log(minBias)
    return minBias;
}

const ratings = [ 1, 3, 6, 6 ]
minimizeBias(ratings);

【讨论】:

    【解决方案3】:

    function minimizeBias(ratings) {
        const noOfProgrammers = ratings.length;
    
        ratings.sort((a,b)=>b-a)
    
        let minBias = 0;
        for (let i = 0; i < noOfProgrammers; i = i + 2) {
            minBias = minBias + (ratings[i] - ratings[i + 1]);
        }
        console.log(minBias)
        return minBias;
    }
    
    const ratings = [ 1, 3, 6, 6 ]
    minimizeBias(ratings);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      相关资源
      最近更新 更多