慄醬有一天在網上衝浪的時候發現了一道很有意思的資料結構題。
該資料結構形如長條形。
一開始該容器為空,有以下七種操作。
1 a從前面插入元素a
2 從前面刪除乙個元素
3 a從後面插入乙個元素
4 從後面刪除乙個元素
5 將整個容器頭尾翻轉
6 輸出個數和所有元素
7 對所有元素進行從小到大排序
只有一組資料,第一行n≤50000,m≤200000, a≤100000 代表最大資料數目和操作次數。接下來每一行乙個操作如上描述。保證所有操作合法(不會在容器為空時刪除元素)。
6、7操作共計不會超過10次。
當執行6操作時,第一行先輸出當前的個數,然後從頭到尾按順序輸出,每兩個元素之間用乙個空格隔開,末尾不能有空格。
10 91 13 5
3 4645
676
3時間限制:c/c++ 1秒,其他語言2秒1 5 4
25 1
21 5
空間限制:c/c++ 131072k,其他語言262144k
64bit io format: %lld
使用vector
#include #include #include using namespace std;
int main()
else if(op == 2)else if (op == 3)else if (op == 4)else if (op == 5)else if (op == 6)
cout << v[v.size() - 1] << endl;
}else
}return 0;
}
使用vector並作修改後
#include #include #include using namespace std;
int main()
else if(op == 2)else if (op == 3)else if (op == 4)else if (op == 5)else if (op == 6)
cout << v[v.size() - 1] << endl;
}else
}return 0;
}
使用雙端佇列:
#include #include #include using namespace std;
int main()
cout << q[q.size() - 1] << endl;
break;
case 7:
sort(q.begin(), q.end());
break;
default:break;}}
return 0;
}
雙端佇列也可以像陣列一樣訪問,雙端佇列deque是乙個支援在兩端高效插入或刪除元素的連續線性儲存空間。它就像是vector和queue的結合,與vector相比,deque在頭部增刪元素僅需要o(1)的時間,不過牛客網的執行時間誤差有點大,同乙份**執行時間竟然能相差近兩百ms。 牛客網選擇題 資料結構
1 字串www.qq.com所有非空子串 兩個子串如果內容相同則只算乙個 個數是 1024 1018 5550 正確答案 d 解析 初始想法是組合問題,想錯了。字串概念理解錯誤。比如,abc的子串 a b c ab bc abc和乙個空子串 共 3 2 1 1 個 兩個字串 ab,bc,沒有ac.串...
牛客網 簡單題
給出乙個數學式子和兩個關係,知道其他所有數的值,求最後乙個的值 這道題目關鍵點有兩個 1.1.1.一開始的式子其實自然對數e ee的求值公式 2.2.2.對於題目要求的任意保留小數,我們可以用到c c c 中的ios iosios cout include include include inclu...
牛客網資料開發題庫 牛客網資料庫SQL實戰(1)
查詢最晚入職員工的所有資訊 入門 需要查詢最晚入職員工的資訊,即查詢hire date最大的資料,使用倒序並取第乙個人即可。select from employees order by hire date desc limit 0,1 desc 使用order by時在後面加上desc表示倒序,即從...