给定整数序列作为数组,我们必须确定是否可以通过从数组中删除不超过一个元素来获得严格递增的序列。
例如-
对于序列= [1、3、2、1],输出应为function(sequence)= false。为了获得严格递增的顺序,此数组中没有一个元素可以删除。
对于序列= [1、3、2],输出应为function(sequence)= true。您可以从数组中删除3以获得严格递增的序列[1、2]。或者,您可以删除2以得到严格递增的序列[1、3]。
它是一个数学术语,表示每个后继数字都大于其前一个数字的数字排列。除此之外,存在递增的顺序,其中后继元素大于或等于前一个元素。
减少顺序和严格减少顺序的逻辑相同。
我们将遍历数组,检查后一个元素是否大于前一个元素。如果更大,那么对我们来说很好,但是如果不更大(请记住,它必须更大,并且不大于或等于我们要形成严格递增的序列。),我们将保留不必要的元素计数,并增加它每次发生1次。
如果在迭代过程中,计数超过1,则返回false,否则,如果我们遍历整个数组,且Elements <= 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