Computer >> Máy Tính >  >> Lập trình >> Javascript

Gia tăng nghiêm ngặt JavaScript trình tự

Cho một dãy số nguyên dưới dạng một mảng, chúng ta phải xác định xem liệu có thể có được dãy số tăng dần một cách nghiêm ngặt bằng cách loại bỏ không quá một phần tử khỏi mảng hay không.

Ví dụ -

Đối với dãy =[1, 3, 2, 1], đầu ra phải là hàm (dãy) =false. Không có một thành phần nào trong mảng này có thể bị loại bỏ để có được một chuỗi tăng dần.

Đối với dãy =[1, 3, 2], đầu ra phải là hàm (dãy) =true. Bạn có thể xóa 3 khỏi mảng để nhận được chuỗi tăng dần [1, 2]. Ngoài ra, bạn có thể loại bỏ 2 để có được trình tự tăng dần [1, 3].

Trình tự tăng dần

Nó là một thuật ngữ toán học đại diện cho một sự sắp xếp các số trong đó mọi số đứng sau đều lớn hơn số đứng trước của nó. Khác với điều này, tồn tại trình tự tăng dần trong đó phần tử tiếp theo lớn hơn hoặc bằng phần tử trước đó.

Logic tương tự áp dụng cho trình tự giảm dần và trình tự giảm dần.

Phương pháp tiếp cận

Chúng ta sẽ lặp lại mảng để kiểm tra xem phần tử tiếp theo có lớn hơn phần tử đứng trước hay không. Nếu nó lớn hơn, thì tốt với chúng tôi, nhưng nếu nó không lớn hơn (hãy nhớ nó phải nhỏ hơn và không lớn hơn hoặc bằng vì chúng tôi muốn tạo thành một chuỗi tăng dần.) Chúng tôi sẽ giữ một số lượng các Thực hiện không mong muốn và tăng nó lên 1 sau mỗi thời gian điều này xảy ra.

Nếu trong quá trình lặp lại, số lượng vượt quá 1, chúng tôi trả về false sau đó và ở đó, nếu chúng tôi duyệt qua toàn bộ với wishElements <=1, chúng tôi trả về true.

Do đó, hãy viết mã cho chức năng này -

Ví dụ

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]));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

false
true