Pārlūkot izejas kodu

Adding even faster solution for 3637

Vinicius Teshima 1 nedēļu atpakaļ
vecāks
revīzija
be6d0b8f09
1 mainītis faili ar 9 papildinājumiem un 15 dzēšanām
  1. 9 15
      TypeScript/3637.ts

+ 9 - 15
TypeScript/3637.ts

@@ -4,21 +4,15 @@
 function isTrionic(nums: number[]): boolean {
     if ( nums.length < 4 ) { return false }
 
-    function isIncreasing(ns: number[]): boolean {
-        let len: number = ns.length
-        if ( len == 1 ) { return false }
-        len--
-        let i: number = 0
-        while ( i < len ) { if ( ns[i] >= ns[i+1] ) { return false } i++ }
+    function isIncreasing(s, e: number): boolean {
+        let i: number = s
+        while ( i < e ) { if ( nums[i] >= nums[i+1] ) { return false } i++ }
         return true
     }
 
-    function isDecreasing(ns: number[]): boolean {
-        let len: number = ns.length
-        if ( len == 1 ) { return false }
-        len--
-        let i: number = 0
-        while ( i < len ) { if ( ns[i] <= ns[i+1] ) { return false } i++ }
+    function isDecreasing(s, e: number): boolean {
+        let i: number = s
+        while ( i < e ) { if ( nums[i] <= nums[i+1] ) { return false } i++ }
         return true
     }
 
@@ -27,9 +21,9 @@ function isTrionic(nums: number[]): boolean {
     let nlen: number = nums.length - 1
 
     while ( true ) {
-        if ( isIncreasing(nums.slice(0, p+1))
-             && isDecreasing(nums.slice(p, q+1))
-             && isIncreasing(nums.slice(q)) ) { return true }
+        if ( isIncreasing(0, p)
+             && isDecreasing(p, q)
+             && isIncreasing(q, nlen) ) { return true }
         q++
         if ( q >= nlen ) {
             p++