国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

PAT BASIC 1008

2019-11-11 03:47:39
字體:
來源:轉載
供稿:網友

思路:

這個題題意表達得可能沒那么清楚,如果說要求只能開O(N)的數組,時間復雜度也是O(N),那就是一個比較有趣的題。

我們可以用三次反轉的方法來思考這個題。

如果說我要把xy這個字符串的y字串移到x子串的左邊,變成yx,我記x^T為將x反轉,如果x=”abc”,那么x^T=”cba”。

這樣,這里就有一個比較有意思的式子了

yx=(x^T y^T)^T

也就是說我們只需要進行三次反轉,就可以實現我的操作。時間復雜度為6N,即O(N)

代碼:

#include<iostream>using namespace std;int num[100];int n, m;void reverse(int left, int right);void reverse(int left, int right){ int i, t; for (i = left; i <= (left + right) / 2; i++) { t = num[i]; num[i] = num[left + right - i]; num[left + right - i] = t; }}int main(){ int count = 0, pos = 0; int i, j, t; cin >> n >> m; m = m%n; for (i = 0; i < n; i++) cin >> num[i]; reverse(0, n - m - 1); reverse(n - m, n - 1); reverse(0, n - 1); for (i = 0; i < n - 1; i++) cout << num[i] << " "; cout << num[n - 1]; //while (1) //{ //} return 0;}
上一篇:編程練習3.2

下一篇:1041. Be Unique (20)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永新县| 永登县| 二连浩特市| 莱西市| 嵩明县| 炎陵县| 乃东县| 嘉义县| 保定市| 农安县| 滨海县| 小金县| 梁河县| 乐山市| 渝中区| 平武县| 大冶市| 怀安县| 荃湾区| 鄄城县| 都匀市| 乌兰浩特市| 尉氏县| 奉化市| 英德市| 阆中市| 桂东县| 陆川县| 界首市| 福鼎市| 阜南县| 龙里县| 南平市| 乌拉特中旗| 友谊县| 晋宁县| 蒙山县| 上犹县| 乡宁县| 承德市| 花莲县|