Skip to content

Instantly share code, notes, and snippets.

@tamanobi
Last active August 29, 2015 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tamanobi/77026c3523c8d3ddb1e2 to your computer and use it in GitHub Desktop.
Save tamanobi/77026c3523c8d3ddb1e2 to your computer and use it in GitHub Desktop.
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