【问题标题】:combinational sum- how to write test correctly JavaScript组合总和 - 如何正确编写测试 JavaScript
【发布时间】:2022-07-01 21:35:21
【问题描述】:

我需要使用 JavaScript 测试 Combinational Sum I 算法。我已经在 html 中完成了所有操作,但我不知道如何正确调用包含 Combinational Sum I 算法的函数(在 script.js 中)。有人知道怎么称呼吗?如何计算?测试怎么写?

let botun=document.getElementById('botun'); 
//including variables
botun.onclick=function(){
    let niz=document.getElementById('input').value;
    let target=document.getElementById('target').value; 
    
   
    //convert string in array 
    let nizInt=niz.split(' ').map(Number);

    //convert  element of array in Int
    let nizIntNovi=[];
    for(var i=0; i<nizInt.length; i++) {
        nizInt[i] = parseInt(nizInt[i], 10); 
        nizIntNovi[i]=nizInt[i];
    }
    console.log(nizIntNovi);

    //calling function
        let meduRez=combinationalSum(nizIntNovi,target);
        console.log(meduRez);
}

// Javascript program to find all combinations that
// sum to a given value
var combinationalSum=function(candidates,target){

    //global result
    const result=[];
    candidates.sort((a,b)=>a-b);
  
    //dfs recursive helper
    const dfs=(i,candidates,target,slate)=>{
      //backtracking case
      if(target<0) return;
      //base case
      if(target===0){
        result.push(slate.slice());
        return;
      }
  
      //dfs recursive case 
      for(let j=i;j<candidates.lenght;j++){
        slate.push(candidates[j]);
        dfs(j,candidates,target-candidates[j],slate);
        slate.pop();
      }
  
    }
    
    dfs(0,candidates,target,[]);
    return result;
  };
  

【问题讨论】:

    标签: javascript testing


    【解决方案1】:

    您可以像在下面的 sn-p 中那样调用它,并带有一些基本的 HTML。 这里有一篇关于方法https://www.geeksforgeeks.org/combinational-sum/的文章

    let botun = document.getElementById('botun');
    //including variables
    botun.onclick = function() {
      let niz = document.getElementById('input').value;
      let target = document.getElementById('target').value;
    
    
      //convert string in array 
      let nizInt = niz.split(' ').map(Number);
    
      //convert  element of array in Int
      let nizIntNovi = [];
      for (var i = 0; i < nizInt.length; i++) {
        nizInt[i] = parseInt(nizInt[i], 10);
        nizIntNovi[i] = nizInt[i];
      }
      console.log(nizIntNovi);
    
      //calling function
      let meduRez = combinationalSum(nizIntNovi, target);
      console.log(meduRez);
    }
    
    // Javascript program to find all combinations that
    // sum to a given value
    var combinationalSum = function(candidates, target) {
    
      //global result
      const result = [];
      candidates.sort((a, b) => a - b);
    
      //dfs recursive helper
      const dfs = (i, candidates, target, slate) => {
        //backtracking case
        if (target < 0) return;
        //base case
        if (target === 0) {
          result.push(slate.slice());
          return;
        }
    
        //dfs recursive case 
        for (let j = i; j < candidates.lenght; j++) {
          slate.push(candidates[j]);
          dfs(j, candidates, target - candidates[j], slate);
          slate.pop();
        }
    
      }
    
      dfs(0, candidates, target, []);
      return result;
    };
    I need to test Combinational Sum I algorithm using JavaScript. I have done all things in html, but I don't know how to call function (in script.js), which contain Combinational Sum I algorithm, correctly. Does anybody know how to call it? how to calculate?
    how to write test?<br>
    
    Input: <input id="input" value="1 2 3 4">
    Target: <input id="target" value="6">
    <button id="botun">click</button>

    【讨论】:

      猜你喜欢
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 2022-06-12
      • 1970-01-01
      • 2018-07-08
      • 2020-12-03
      • 1970-01-01
      相关资源
      最近更新 更多