严格递增序列 JavaScript

javascriptweb developmentobject oriented programming更新于 2025/10/3 2:52:17

给定一个整数序列作为数组,我们必须确定是否可以通过从数组中删除不超过一个元素来获得严格递增序列。

例如 −

对于序列 = [1, 3, 2, 1],输出应为 function(sequence) = false。此数组中没有任何元素可以删除以获得严格递增序列。

对于序列 = [1, 3, 2],输出应为 function(sequence) = true。您可以从数组中删除 3 以获得严格递增序列 [1, 2]。或者,您可以删除 2 以获得严格递增序列 [1, 3]。

严格递增序列

它是一个数学术语,表示数字的排列,其中每个后续数字都大于其前一个数字。除此之外,还存在递增序列,其中后继元素大于或等于前一个元素。

同样的逻辑适用于递减序列和严格递减序列。

方法

我们将循环遍历数组,检查后继元素是否大于前一个元素。如果它大于,那么我们可以接受,但如果它不大于(记住它必须大于,而不是大于或等于,因为我们想要形成一个严格递增的序列。)我们将保留 unwantedElements 的计数,每次发生这种情况时将其增加 1。

如果在迭代过程中,计数超过 1,我们立即返回 false,否则如果我们遍历整个序列,并且 unwantedElements <= 1,我们将返回 true。

因此,让我们编写该函数的代码 −

示例

const isStrictlyIncreasing = (arr) => {
   let unwantedElements = 0;
   for(let i = 0; i < arr.length - 1; i++){
      if(arr[i] >= arr[i+1]){
         unwantedElements++;
         if(unwantedElements > 1){
            return false;
         };
      };
   };
   return true;
};
console.log(isStrictlyIncreasing([1, 3, 2, 1]));
console.log(isStrictlyIncreasing([1, 3, 2]));

输出

控制台中的输出将是 −

false
true

相关文章


有用资源