全部评论
%27
感觉不是特别难,从第一个数开始 一个指针记录第一个数, 然后第二指针往后遍历,当遇到一个比记录数大或者相等的时候,分组数加1, 然后用这个新的数替换原来的记录数,如此遍历完即可
题目都看半天😂
求代码 还有第二题
36
#include<bits/stdc++.h> using namespace std; const int maxn = 1e5+5; const int inf = 0x3f3f3f3f; typedef long long ll; ll a[maxn], n, minn[maxn], maxx[maxn]; int main() { ios::sync_with_stdio(0); cin>>n; for(ll i=1; i<=n; i++) cin>>a[i]; minn[n] = a[n]; for(ll i=n-1; i>=1; i--) minn[i] = min(minn[i+1], a[i]); maxx[1] = a[1]; for(ll i=2; i<=n; i++) maxx[i] = max(maxx[i-1], a[i]); ll ans = 1; for(ll i=2; i<=n; i++) if(maxx[i-1] <= minn[i]) ans++; cout<<ans<<endl; return 0; }
第一题题目好难懂,ac了,第二题粘测试用例,直接告辞
不应该是分组从高到低吗? 题目里都写得从低到高, 有人注意吗,还是我理解错了
局部插入排序
leetcode 768. Max Chunks To Make Sorted II
就是分组,分出来的组从低到高排完之后,整个数组也能满足从低到高。
36
18%😂😂😂
先找数组中最小的数,然后跟它之前的数组成一个分组。然后从这个索引开始往后找剩余数组中最小的数,再跟之前的数划分一个组。直到找到数组末尾。一顿操作过了两个用例,粘进去一看发现27%,超时,难受啊。
https://www.nowcoder.com/discuss/232733 我帖子写了,供参考
相关推荐