-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstrict_increasing_array.c
More file actions
132 lines (93 loc) · 3.06 KB
/
strict_increasing_array.c
File metadata and controls
132 lines (93 loc) · 3.06 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// 3105. Longest Strictly Increasing or Strictly Decreasing Subarray
// Attempted
// Easy
// Topics
// Companies
// You are given an array of integers nums. Return the length of the longest subarray of nums which is either strictly increasing or strictly decreasing.
// Example 1:
// Input: nums = [1,4,3,3,2]
// Output: 2
// Explanation:
// The strictly increasing subarrays of nums are [1], [2], [3], [3], [4], and [1,4].
// The strictly decreasing subarrays of nums are [1], [2], [3], [3], [4], [3,2], and [4,3].
// Hence, we return 2.
// Example 2:
// Input: nums = [3,3,3,3]
// Output: 1
// Explanation:
// The strictly increasing subarrays of nums are [3], [3], [3], and [3].
// The strictly decreasing subarrays of nums are [3], [3], [3], and [3].
// Hence, we return 1.
// Example 3:
// Input: nums = [3,2,1]
// Output: 3
// Explanation:
// The strictly increasing subarrays of nums are [3], [2], and [1].
// The strictly decreasing subarrays of nums are [3], [2], [1], [3,2], [2,1], and [3,2,1].
// Hence, we return 3.
// Constraints:
// 1 <= nums.length <= 50
// 1 <= nums[i] <= 50
class Solution {
public:
int longestMonotonicSubarray(vector<int>& nums) {
int max=0;
int min=0;
if(size(nums)>=1 && size(nums)<=50)
{
for(int i=0;i<size(nums)-1;i++)
{ int k=1;
int q;
for(int j=i+1;j<size(nums);j++){
if(nums[i]>=1 && nums[i]<=50)
{
if(nums[j]>=1 && nums[j]<=50){
q=nums[j-1];
if(q>nums[j])
{
k=k+1;
}
else
{
break;
}
}
}
}
if(k > max)
{
max=k;
}
int l=1;
int L;
for(int j=i+1;j<size(nums);j++){
if(nums[i]>=1 && nums[i]<=50)
{
if(nums[j]>=1 && nums[j]<=50){
L=nums[j-1];
if(L<nums[j])
{
cout<<" lo ";
l++;
continue;
}
else
{
if(l > min)
{
min=l;
}
break;
}
}
}
}
}
if(max>min)
return max;
else
return min;
}
return 1;
}
};