Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function specialSubsequence(input) {
- let currentSpecialSubSequence = [];
- let maxSpecialSubsequence = [];
- let isPreviosePositiveNumber = false;
- let isPreviouseNegativeNumber = false;
- let i = 0;
- while (i < input.length) {
- if (input[i] > 0) {
- isPreviosePositiveNumber = true;
- currentSpecialSubSequence.push(input[i]);
- break;
- } else if (input[i] < 0) {
- isPreviouseNegativeNumber = true;
- currentSpecialSubSequence.push(input[i]);
- break;
- }
- i++;
- }
- for (index = i + 1; index < input.length; index++) {
- if (isPreviosePositiveNumber && input[index] < 0) {
- isPreviosePositiveNumber = false;
- isPreviouseNegativeNumber = true;
- currentSpecialSubSequence.push(input[index]);
- if (maxSpecialSubsequence.length < currentSpecialSubSequence.length) {
- maxSpecialSubsequence = [];
- maxSpecialSubsequence = currentSpecialSubSequence.slice(0);
- }
- } else if (isPreviouseNegativeNumber && input[index] > 0) {
- isPreviosePositiveNumber = true;
- isPreviouseNegativeNumber = false;
- currentSpecialSubSequence.push(input[index]);
- if (maxSpecialSubsequence.length < currentSpecialSubSequence.length) {
- maxSpecialSubsequence = [];
- maxSpecialSubsequence = currentSpecialSubSequence.slice(0);
- }
- } else {
- currentSpecialSubSequence = [];
- while (input[index] === 0) {
- index++;
- }
- if (input[index] > 0) {
- isPreviosePositiveNumber = true;
- isPreviouseNegativeNumber = false;
- currentSpecialSubSequence.push(input[index]);
- } else {
- isPreviouseNegativeNumber = true;
- isPreviosePositiveNumber = false;
- currentSpecialSubSequence.push(input[index]);
- }
- }
- }
- console.log(maxSpecialSubsequence.length > 0
- ? `The longest sequence is ${maxSpecialSubsequence.join(', ')}`
- : `In ${input.join(', ')} no special sequence is found`)
- }
- specialSubsequence([0, 1, -2, 1, -1, 2, 0, 0]);
- specialSubsequence([-1, -1, -1, 1, -1])
- specialSubsequence([1, 2, 3, 4, 5]);
- // The result is:
- // The longest sequence is 1, -2, 1, -1, 2
- // The longest sequence is -1, 1, -1
- // In 1, 2, 3, 4, 5 no special sequence is found
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement