Re: [闲聊] 每日leetcode

楼主: oin1104 (是oin的说)   2024-10-30 15:44:51
题目:
给你一个阵列
移除最少元素让阵列变成一座严格的山
思路:
严格山
=从左右两边都是严格递增
=要lis两次
开头结尾 或是lis==1都不可以
然后每个数字都看看他是多少
选最小就好了
```cpp
class Solution {
public:
int minimumMountainRemovals(vector<int>& nums)
{
int n = nums.size();
vector<int> l2r(n,0);
vector<int> r2l(n,0);
vector<int> st;
for(int i = 0 ; i < n ; i ++)
{
if(st.empty() || nums[i] > st[st.size()-1])
{
st.push_back(nums[i]);
l2r[i] = st.size();
continue;
}
int l = 0 ;
int r = st.size();
int m = (l+r)/2;
while(l<=r)
{
m = (l+r)/2;
if(st[m] >= nums[i])
{
r = m-1;
}
else if(st[m] < nums[i])
{
l = m+1;
}
}
st[l] = nums[i];
l2r[i] = st.size();
}
st.clear();
for(int i = n-1 ; i >= 0 ; i
作者: JIWP (JIWP)   2024-10-30 15:50:00
你有什么用
作者: mrsonic (typeB)   2024-10-30 15:52:00
你有什么用
作者: DJYOMIYAHINA (通通打死)   2024-10-30 16:13:00
你好猛

Links booklink

Contact Us: admin [ a t ] ucptt.com