From 455316f1396e98e46fdd43b7fad479b68da1eac0 Mon Sep 17 00:00:00 2001 From: verdant Date: Tue, 30 Jun 2026 12:11:38 +0800 Subject: Move from GitHub --- leetcode/3637/main.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 leetcode/3637/main.c (limited to 'leetcode/3637/main.c') diff --git a/leetcode/3637/main.c b/leetcode/3637/main.c new file mode 100644 index 0000000..6f5cf7d --- /dev/null +++ b/leetcode/3637/main.c @@ -0,0 +1,42 @@ +#include +bool isTrionic(int *nums, int numsSize) { + if (numsSize < 4) { + return false; + } + + // 防止[9,4,6,8] + if (nums[0] > nums[1]) { + return false; + } + + enum { UP1, DOWN, UP2 } state = UP1; + + // 状态机真好玩嘻嘻嘻 + for (int i = 0; i < numsSize - 1; i++) { + if (nums[i] == nums[i + 1]) { + return false; + } + + if (state == UP1) { + if (nums[i] < nums[i + 1]) { + continue; + } else { + state = DOWN; + } + } else if (state == DOWN) { + if (nums[i] > nums[i + 1]) { + continue; + } else { + state = UP2; + } + } else { // 既不等于UP1, 也不等于DOWN,就等于UP2 + if (nums[i] < nums[i + 1]) { + continue; + } else { + return false; + } + } + } + + return state == UP2; +} -- cgit v1.2.3