【问题标题】:Move to the next iteration one at time一次移动到下一个迭代
【发布时间】:2021-02-26 15:03:24
【问题描述】:

我有一个名为 current 的变量,它存储数字 0 和长度为 4 的数组我实现了请帮助!例如:

    /*2 0
      7 0
      11 0
      15 0*/

if not try the next one:

  /*2 1
    7 1
    11 1
    15 1*/
so on and so forth

let nums = [2,7,11,15]
let target = 18
let current = 0

nums.forEach(function(k,i){
let begin = current
if(nums[begin]+nums[i] === target){
  console.log(true)
}else{
begin++
}
console.log(nums[begin],nums[i])

})

【问题讨论】:

    标签: javascript algorithm iteration


    【解决方案1】:

    let nums    = [2,7,11,15]
      , target  = 18
      , flag=0
      , i, j
      ;
    for( i=0; i<nums.length-1; i++) {
      for( j=i+1; j<nums.length; j++) {
        if((nums[i]+nums[j])===target) {
            flag=1;
            break;
         }
      }
      if(flag) break;
    }
    console.log(nums[i],nums[j]);

    【讨论】:

    • 太好了,如果这可行,请给@Aliayub Ali 点个赞
    【解决方案2】:

    那个?

    let nums    = [2,7,11,15]
      , target  = 18
      , i, j, found = false
      ;
    for(i=0; i<nums.length-1; i++) {
      for( j=i+1; j<nums.length; j++) {
        found = (nums[i]+nums[j])===target 
        if (found) break;
      }
      if (found) break;
    }
    if (found) console.log('values = ', nums[i],'+', nums[j], '=', target )
    else       console.log('none' )

    你也可以这样做:

    let nums    = [2,7,11,15]
      , target  = 18
      , i=0, j=1, sum = nums[i] + nums[j]
      ;
    while (sum != target)
      {
      if (++j===nums.length )
        if (++i===(nums.length-1)) break
        else j=i+1
      sum = nums[i] + nums[j]
      }
    
    if (sum===target) console.log('values = ', nums[i],'+', nums[j], '=', target )
    else              console.log('none' )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-18
      • 2019-11-29
      • 2014-06-30
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多