lc2369.检查数组是否存在有效划分

题目链接:

题解

简单 dp

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
* @lc app=leetcode.cn id=2369 lang=cpp
*
* [2369] 检查数组是否存在有效划分
*/

// @lc code=start
class Solution {
public:
bool validPartition(vector<int>& nums) {
int ok[112345];
memset(ok, 0, sizeof ok);
int n = nums.size();

for(int i=1;i<n;i++) {

if(nums[i-1] == nums[i]) {
if(i==1||ok[i-2]) ok[i] = 1;
}

if(i>=2) {
if(nums[i-2] == nums[i-1] && nums[i-1] == nums[i]) {
if(i==2||ok[i-3]) ok[i] = 1;
}

if(nums[i-2] + 1 == nums[i-1] && nums[i-1] +1 == nums[i]) {
if(i==2||ok[i-3]) ok[i] = 1;
}
}
}

return ok[n-1];
}
};
// @lc code=end


lc2369.检查数组是否存在有效划分

https://blog.xiang578.com/problem/lc2369.html

作者

Ryen Xiang

发布于

2024-03-02

更新于

2024-04-20

许可协议


网络回响

评论