数据结构 | 链表:1097 删除重复元素
生活随笔
收集整理的這篇文章主要介紹了
数据结构 | 链表:1097 删除重复元素
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼提交之后一直說段錯誤。我以為是數組開的不夠大,但是隨著數組一點一點開大,還是有一個case沒有AC。最終我發現:是有個邊界條件沒有考慮到
void printList(const vector<Node>& a){if(!a.size()) return;FF(i,a.size()-1){printf("%05d %d %05d\n",a[i].i,a[i].d,a[i+1].i);}printf("%05d %d %d\n",a[i].i,a[i].d,-1); }錯誤原因:沒有加上加粗的那行代碼。
AC代碼:
#include <stdio.h> #include <memory.h> #include <math.h> #include <string> #include <vector> #include <set> #include <stack> #include <queue> #include <algorithm> #include <map>#define I scanf #define OL puts #define O printf #define F(a,b,c) for(a=b;a<c;a++) #define FF(a,b) for(a=0;a<b;a++) #define FG(a,b) for(a=b-1;a>=0;a--) #define LEN 1000000 #define MAX 0x06FFFFFF #define V vector<int>using namespace std;typedef struct Node{int d,next,i; }Node; Node nd[LEN]; set<int> Has;void printList(const vector<Node>& a){if(!a.size()) return;FF(i,a.size()-1){printf("%05d %d %05d\n",a[i].i,a[i].d,a[i+1].i);}printf("%05d %d %d\n",a[i].i,a[i].d,-1); }int main(){ // freopen("1097.txt","r",stdin);int f,n,add,num,next;int i,j;I("%d%d",&f,&n);FF(i,n){I("%d",&add);I("%d%d",&num,&next);nd[add].i=add;nd[add].d=num;nd[add].next=next;}vector<Node> a;vector<Node> b;i=f;while(i>=0){int t=abs(nd[i].d);if(Has.find(t)==Has.end()){a.push_back(nd[i]);Has.insert(t);}else b.push_back(nd[i]);i=nd[i].next; // O("%d\n",i); }printList(a);printList(b);return 0; }?
轉載于:https://www.cnblogs.com/TQCAI/p/8546007.html
總結
以上是生活随笔為你收集整理的数据结构 | 链表:1097 删除重复元素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《猎场》剧情开虐, 罗伊人为爱崩溃, 胡
- 下一篇: 回答下novo8怎么升级鸿蒙