-
交互式爱情
这种逻辑?var arr = [1, 2, 5, 6, 7, 11, 14];var len = arr.length, before = arr[0], i = 1, res = [], result = [], current;for (;i < len; i++) { current = arr[i]; if (current - before === 1 ) { if (res.length === 0) res.push(before); res.push(current); } else { if (res.length) { result.push(res); } res = []; } before = current;}if (res.length) { result.push(res);}console.log(result);
-
慕森卡
这样行吗?function subsequence(arr) { if (!arr || arr.length < 2) return []; let result = [], curr = arr[0], subArr = [curr]; for (let i = 1; i < arr.length; i++) { if (arr[i] === curr + 1) { subArr.push(arr[i]); curr = arr[i]; } else { if (subArr.length > 1) { result.push(subArr); } curr = arr[i]; subArr = [curr]; } } if (subArr.length > 1) { result.push(subArr); } return result;}// testconsole.log(subsequence([]));console.log(subsequence([0]));console.log(subsequence([1,2,5,6,7,11,14]));console.log(subsequence([1,2,3,4,7,8,9,11,23,45,56,66,67]));console.log(subsequence([9, 8, 7, 7, 8, 9, 0]));
-
Cats萌萌
C++来凑个热闹。#include <algorithm>#include <iostream>#include <iterator>#include <vector>template <class It>std::vector<std::vector<int>> Solution(It first, It last) { std::vector<std::vector<int>> result; while (first != last) { auto ite = std::adjacent_find(first, last, [](int l, int r) {return l != r-1;}); if (ite != last) ++ite; if (std::distance(first, ite) > 1) result.emplace_back(first, ite); first = ite; } return result;}int main() { std::vector<int> vtr = {1, 2, 3, 5, 1, 2, 1}; for (const auto &result : Solution(vtr.begin(), vtr.end())) { std::copy(result.begin(), result.end(), std::ostream_iterator<int>(std::cout, " ")); std::cout << std::endl; } return 0;}
-
繁星点点滴滴
const arr = [1, 2, 3, 4, 7, 8, 9, 11, 23, 45, 56, 66, 67], len = arr.length; let i = 0, c = -1; let newArr = []; while (i < len) { let t = arr[i] - i; if (t === c) { newArr.pop(); } else { newArr.push(arr[i]); c = t; } i = i + 1; } console.log(newArr);