Last active
August 29, 2015 14:14
-
-
Save tamanobi/77026c3523c8d3ddb1e2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
process.stdin.resume(); | |
process.stdin.setEncoding('utf8'); | |
// Here your code ! | |
process.stdin.on('data', function (chunk) { | |
var Naive = function(list1, list2){ | |
var res = []; | |
for(var i = 0; i < list1.length; i++){ | |
for(var j = 0; j < list2.length; j++){ | |
if(list1[i] == list2[j]) res.push(list1[i]); | |
} | |
} | |
return res; | |
}; | |
var Short = function(list1, list2){ | |
var res = []; | |
var sorted1 = list1.sort(function(a, b){ return a-b; });// N | |
var sorted2 = list2.sort(function(a, b){ return a-b; });// M | |
var flag = true; | |
for(var i = 0; i < sorted1.length; i++){ | |
for(var j = 0; j < sorted2.length; j++){ | |
if(sorted1[i] == sorted2[j]) { | |
res.push(sorted1[i]); | |
break; | |
} else if(sorted1[i] < sorted2[j]){ | |
break; | |
} | |
} | |
if(flag == false) break; | |
} | |
return res; | |
}; | |
var Fast = function(list1, list2){ | |
var idx1 = 0; | |
var idx2 = 0; | |
var end1 = list1.length; | |
var end2 = list2.length; | |
var sorted1 = list1.sort(function(a, b){ return a-b; });// N | |
var sorted2 = list2.sort(function(a, b){ return a-b; });// M | |
var res = []; | |
while(idx1 != end1 && idx2 != end2){ | |
if(sorted2[idx2] > sorted1[idx1]){idx1++;} | |
else if(sorted1[idx1] > sorted2[idx2]){idx2++;} | |
else{ | |
res.push(sorted1[idx1]); | |
idx1++;idx2++; | |
} | |
} | |
return res; | |
}; | |
var main = function(){ | |
var lines = chunk.toString().split('\n'); | |
var list1 = JSON.parse(lines[0]); | |
var list2 = JSON.parse(lines[1]); | |
console.log(Naive(list1,list2)); | |
console.log(Short(list1,list2)); | |
console.log(Fast(list1,list2)); | |
}; | |
main(); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment