31 lines
897 B
JavaScript
31 lines
897 B
JavaScript
import { peakIndexInMountainArray, mountainSequence, findInMountainArray } from '../../src/array/find-in-mountain-array'
|
|
|
|
test('山脉数组的峰顶索引', () => {
|
|
expect(peakIndexInMountainArray([0, 1, 0])).toBe(1)
|
|
expect(peakIndexInMountainArray([0, 2, 1, 0])).toBe(1)
|
|
})
|
|
|
|
test('山脉序列中的最大值', () => {
|
|
expect(mountainSequence([1, 2, 4, 8, 6, 3])).toBe(8)
|
|
expect(mountainSequence([10, 9, 8, 7])).toBe(10)
|
|
})
|
|
|
|
function MountainArray (arr) {
|
|
this.arr = arr
|
|
// @param {number} index
|
|
// @return {number}
|
|
this.get = function (index) {
|
|
return this.arr[index]
|
|
}
|
|
|
|
// @return {number}
|
|
this.length = function () {
|
|
return this.arr.length
|
|
}
|
|
};
|
|
|
|
test('山脉数组中查找目标值', () => {
|
|
expect(findInMountainArray(3, new MountainArray([1, 2, 3, 4, 5, 3, 1]))).toBe(2)
|
|
expect(findInMountainArray(3, new MountainArray([0, 1, 2, 4, 2, 1]))).toBe(-1)
|
|
})
|