kongfamily0804
BAN USERvar src = [1,2,3,-1,4,5];
var dest = [5,1,2,-1,3,4];
var procCount = 0;
function replaceElement(arr, num1, num2) {
var num1Idx = arr.indexOf(num1);
var num2Idx = arr.indexOf(num2);
arr[num2Idx] = num1;
arr[num1Idx] = num2;
procCount++;
}
function go() {
while(true) {
if(procCount > 15) {
return;
}
console.log(src);
var targetIdx = src.indexOf(-1);
var destVal = dest[targetIdx];
if(src.toString() === dest.toString()) {
break;
}
if(destVal === -1) {
for(var i in src) {
if(src[i] !== -1) {
if(src[i] !== dest[i]) {
replaceElement(src, -1, src[i]);
break;
}
}
}
} else {
replaceElement(src, -1, destVal);
}
}
}
var arr = [
[1,2,3,4],
[1,3,2,1],
[1,2,4,2],
[3,2,1,4]
];
function getValidArray(arr) {
var checkNum = 3;
var continousCounter = 0;
var savedNumber = 0;
for(var i in arr) {
if(i === 0) {
continousCounter++;
savedNumber = arr[i];
continue;
}
if(arr[i] !== savedNumber) {
continousCounter = 1;
savedNumber = arr[i];
continue;
}
if(arr[i] === savedNumber) {
continousCounter++;
if(continousCounter === checkNum) {
return false;
}
}
}
return true;
}
function isValidMatrix(matrix) {
if(matrix && matrix.hasOwnProperty('length')) {
var cols = {};
for(var i in matrix) {
if(!getValidArray(matrix[i])) {
return false;
}
for(var j in matrix[i]) {
if(!cols[''+j]) {
cols[''+j] = [];
}
cols[''+j].push(matrix[i][j]);
}
}
for(var idx in cols) {
if(!getValidArray(cols[idx])) {
return false;
}
}
}
return true;
}
{{
- kongfamily0804 January 05, 2017function go(name, level) {
var input = [
['aa', 'bj'],
['bb', 'bj'],
['cc', 'wk'],
['bj', 'kong'],
['wk', 'kong'],
];
var tree = {};
for(var i in input) {
var child = input[i][0];
var parent = input[i][1];
if(!tree[parent]) {
tree[parent] = {};
}
if(!tree[parent][child]) {
tree[parent][child] = {};
}
}
var count = 0;
var curKeys = [name];
while(count < level) {
var keys = [];
for(var i in curKeys) {
keys = keys.concat( Object.keys(tree[curKeys[i]]) );
}
curKeys = keys;
count++;
}
return curKeys.length;
}
}}