| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // 3637. Trionic Array I
- function isTrionic(nums: number[]): boolean {
- if ( nums.length < 4 ) { return false }
- 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(s, e: number): boolean {
- let i: number = s
- while ( i < e ) { if ( nums[i] <= nums[i+1] ) { return false } i++ }
- return true
- }
- let p: number = 1
- let q: number = 2
- let nlen: number = nums.length - 1
- while ( true ) {
- if ( isIncreasing(0, p)
- && isDecreasing(p, q)
- && isIncreasing(q, nlen) ) { return true }
- q++
- if ( q >= nlen ) {
- p++
- q = p+1
- if ( q >= nlen ) { return false }
- }
- }
- return false
- };
- function main() {
- function r(n: number[]) { console.log(`[${n}] = ${isTrionic(n)}`) }
- r([1,3,5,4,2,6])
- r([2,1,3])
- r([1,2,1,2])
- }
- main()
|