Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

247
Visualizações
How to find given array is cyclic or not?

Is array is cyclic or not ?

case 1:-

tasks: ["a","b"]

dependencies: ["a:b"]

result: Not cyclic

explanation : first "b" executes that "a" executes

case 2:-

tasks: ["a","b","c"]

dependencies: ["a:b","b:c","c:a"]

result: cyclic

explanation : a dependent on b , b dependent c again c dependent on a (looping)

case 3:-

tasks: ["a", "b", "c",'d','e']

dependencies: ["a:b", "c:d",'d:e','e:c']

result: cyclic

explanation : c->d, d->e, e->c (loop)

Following is my code and it is not working for cyclic . someone please help me in this

 const cyclicOrNot = () => {

    var tasks = ["a", "b", "c",] ,
    dependencies = ["a:b","b:c", "c:a",], result = []
    var found = false

    dependencies.map(i=>{
      var dependentitem = i.split(':')[0];
     var cyclicResult= checkCyclic(i,dependencies,dependentitem,found);
     console.log(cyclicResult)
      if(cyclicResult) {
        return "cyclic"
      }
      else {
        return "not cyclic"
      }

  })
}


  const checkCyclic = (i,dep,item,found) => {

    return  dep.every(d=>{
      if (i.split(':')[1]===d.split(':')[0]) {
        if(item===d.split(':')[0]){
          found = true
          return found
        }
        else {
          checkCyclic(d,dep,item,found);
        }
        return found
      }
    })
  }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Hello Atchutha rama reddy, please try bellow code :

const cyclicOrNot=(task,dep)=>{  
  let depA = [],depB=[],isCyclic=false;
  dep.map(d=>{
    let dr = d.split(':');
    depA.push(dr[0]);depB.push(dr[1]);    
  });

  
  depA.map(a=>{
    if(depB.indexOf(a)!==-1){
      let opsA = depA[depB.indexOf(a)];
      isCyclic = (depB.indexOf(opsA)!==-1)?true:isCyclic;
    }
  });


  console.log(dep.toString()+' is '+(isCyclic?'Cyclic':'Not Cyclic'));

  return isCyclic;
}



var tasks = ["a","b"],dependencies = ["a:b"];
cyclicOrNot(tasks,dependencies);

var tasks = ["a", "b", "c",],dependencies = ["a:b","b:c","c:a"];
cyclicOrNot(tasks,dependencies);

var tasks = ["a", "b", "c",'d','e'],dependencies = ["a:b", "c:d",'d:e','e:c'];
cyclicOrNot(tasks,dependencies);

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda