Skip to content

Instantly share code, notes, and snippets.

@vadimkorr
Created January 16, 2018 22:30
Show Gist options
  • Save vadimkorr/3bc289fbc65fde7a9c85cc186885580d to your computer and use it in GitHub Desktop.
Save vadimkorr/3bc289fbc65fde7a9c85cc186885580d to your computer and use it in GitHub Desktop.
// Task: Given an array of N numbers.
// Find longest subsequence of increasing numbers
let findLongestSubs = function(arr) {
if (arr.length === 0) {
return null;
} else if (arr.length === 1) {
return arr[0];
} else {
let longestLen = 1;
let resL = l = 0, resR = r = 1;
for(let i=1; i<arr.length; ++i) {
if (arr[i] > arr[i-1]) {
r = i;
} else {
l = i;
}
if (r-l > longestLen) {
longestLen = r-l
resL = l;
resR = r;
}
}
return arr.slice(resL, resR+1)
}
}
let arr = [-1, 1, 2, 3, 7, 8, 9, 14, 5, 6, 8, 9, 10, 11, 12]
console.log(findLongestSubs(arr)) // [-1, 1, 2, 3, 7, 8, 9, 14]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment