順序表的構造、插入、擴充套件、查詢、刪除、遍歷這 6 種操作。一種新的操作:迴圈左移。
對於順序表 l=(a_0, a_1, …, a_)l=(a0,a1,…,an−1),迴圈左移 k位意味著將順序表變為 l^k=(a_k, a_, …, a_, a_0, a_1, …, a_)
lk=(ak,ak+1,…,an−1,a0,a1,…,ak−1)。
比如:長度為 8 的順序表 (1, 2, 3, 4, 5, 6, 7, 8)(1,2,3,4,5,6,7,8),迴圈左移 3 位後的結果為 (4, 5, 6, 7, 8, 1, 2, 3)(4,5,6,7,8,1,2,3)。
輸入格式:
第一行輸入兩個整數 n(1 \leq n \leq 100)n(1≤n≤100) 和 k(0 \leq k \leq n)k(0≤k≤n),分別表示順序表的元素個數和迴圈左移的位移量。
第二行一共 n 個整數 a_i(0 \leq a_i \leq 10000)ai (0≤ai≤10000),表示順序表中元素的值。
輸出格式:
輸出輸出只有一行 n 個整數,順序輸出迴圈左移後順序表中每個元素的值,每個元素之間用乙個空格分隔。行末不要有多餘空格。
樣例輸入
8 31 2 3 4 5 6 7 8
樣例輸出
4 5 6 7 8 1 2 3
// an highlighted block
#include
#include
#define maxsize 100
using namespace std;
template
class
vector
~vector()
void
insert
(type value)
void
llop
(type k)
else
}delete
old_data;
}void
print()
else}}
};int main()
a.llop
(k);
a.print()
;return0;
}
順序表迴圈左移
對於順序表 l a0 a1 an 1 迴圈左移 k位意味著將順序表變為 lk ak ak 1 an 1 a0 a1 ak 1 比如 長度為 8 的順序表 1,2,3,4,5,6,7,8 迴圈左移 3 位後的結果為 4,5,6,7,8,1,2,3 輸入格式 第一行輸入兩個整數 n 1 n 100 分別...
順序表的迴圈右(左)移
我們經常能在演算法題中看到如下題 這兩個題目其實本質上是相同的,都是對整個陣列的迴圈左移或右移。注 陣列和順序表的概念類似但是不相同,陣列是邏輯結構,順序表是線性表採用順序儲存方式實現的,而順序儲存方式是物理儲存方式,所以二者不能混淆,即順序表指的是連續存放在記憶體中的線性表,陣列是記憶體中一串連續...
計蒜客 單獨的數字
給定乙個陣列 a,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 7。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 輸入格式 第一行輸入乙個數n 1 n 500 代表陣列的長度。接下來一行輸入 n 個 int 範圍內 2147483648 2147483647 的...