就A了这个 #include <iostream> #include <vector> #include <algorithm> #include <unordered_map> using namespace std; int main(int argc, const char * argv[]) {     // insert code here...     int n,tmp;     cin>>n;     vector<int> buf(n);     vector<int> dis(n,0x3f3f3f3f);     unordered_map<int,vector<int>> x;     for (int i=0; i<n; i++) {         cin>>tmp;         buf[i] = tmp;         if(x.count(tmp))             x[tmp].push_back(i);         else             x[tmp] = {i};     }     dis[0] = 0;     for(int i=0;i<n-1;i++)     {         dis[i+1] = min(dis[i]+1,dis[i+1]);         auto it = upper_bound(x[buf[i]].begin(), x[buf[i]].end(), i);         if(it!=x[buf[i]].end())             dis[*it] = min(dis[i]+1,dis[*it]);     }     cout<<dis[n-1]<<endl;     return 0; }
点赞 评论

相关推荐

01-26 18:45
门头沟学院 Java
一天代码十万三:哥们实习再包一下吧,产出太笼统了,尽量体现业务
点赞 评论 收藏
分享

牛客热帖

更多
牛客网
牛客企业服务