# 941. Valid Mountain Array 題目:<https://leetcode.com/problems/valid-mountain-array/> 解法:直接解,使用一個布林變數 directDown 紀錄是否到達山頂並接著往下走 Python3: ``` python 3 class Solution: def validMountainArray(self, arr: list[int]) -> bool: if len(arr) < 3: return False if arr[0] >= arr[1]: return False directDown = False for i in range(1, len(arr) - 1): if arr[i + 1] > arr[i]: if directDown: return False elif arr[i + 1] == arr[i]: return False else: if not directDown: directDown = True return directDown if __name__ == '__main__': arr = [0, 3, 2, 1] ans = Solution().validMountainArray(arr) print(ans) ``` C: ``` c #include <stdio.h> #include <stdlib.h> #include <stdbool.h> bool validMountainArray(int* arr, int arrSize){ if (arrSize < 3) return false; if (arr[0] >= arr[1]) return false; bool directDown = false; for (int i = 1; i < arrSize - 1; i++) { if (arr[i + 1] > arr[i]) { if (directDown) return false; } else if (arr[i + 1] == arr[i]) { return false; } else { if (!directDown) directDown = true; } } return directDown; } int main() { int arr[] = {0, 3, 2, 1}; int arrSize = sizeof(arr) / sizeof(arr[0]); bool ans = validMountainArray(arr, arrSize); printf("%s\n", ans ? "True" : "False"); return 0; } ``` ###### tags: `leetcode` `array`