01/10/2018, 10:17

Giúp mình đoạn code stack sai chỗ nào

Xem giúp mình về thuật toán đoạn code sau, mình không tìm thấy sai ở chỗ nào mà nó lại ra không đúng như logic.

   			var s=[];
		var n=4;
		var lay_ra;
		var v=[];
		var dd=1000;//xem như số dương vô cùng
		var kq=[];
		for( i=0; i<n; i++){
		  v.push(0);
		}
		s.push(0);
		v[0]=dd;
		dd--;
		while(s.length != 0){
		  lay_ra=s.pop();
		  for(var j = 0; j < n ; j++){
			if(v[j] < v[lay_ra] )
			{
				s.push(j);
				if(v[j]==0){
					v[j]=dd; dd--;
				}
				kq.push({lay_ra:lay_ra,j:j});
			}
		  }
		}
		$("#msg").html(JSON.stringify(kq));


    Kết quả ra thế náy

[{“lay_ra”:0,“j”:1},{“lay_ra”:0,“j”:2},{“lay_ra”:0,“j”:3},{“lay_ra”:2,“j”:3},{“lay_ra”:1,“j”:2},{“lay_ra”:1,“j”:3},{“lay_ra”:2,“j”:3}]

Mình không hiểu tại sao 2 lần cặp số 2,3
Mong các bạn chỉ giáo,
thk thousands

See my code here

Bài liên quan
0