演算法 演算法測試題3 操作序列

2021-09-13 09:06:11 字數 1213 閱讀 7023

小易有乙個長度為n的整數序列,a_1,...,a_n。然後考慮在乙個空序列b上進行n次以下操作:

1、將a_i放入b序列的末尾

2、逆置b序列

小易需要你計算輸出操作n次之後的b序列。

輸入包括兩行,第一行包括乙個整數n(2 ≤ n ≤ 2*10^5),即序列的長度。

第二行包括n個整數a_i(1 ≤ a_i ≤ 10^9),即序列a中的每個整數,以空格分割。

在一行中輸出操作n次之後的b序列,以空格分割,行末無空格。
輸入

41 2 3 4

輸出4 2 1 3

倒序遍歷陣列a,將a的元素放入b陣列中。

放入b陣列的位置順序為:第乙個,倒數第乙個,第二個,倒數第二個,第三個,倒數第三個....

正序下標用start變數表示,倒序下標用end變數表示

用flag來標識應該使用正序下標還是倒序下標,正序下標和倒序下標交替使用

1.先計算出a[i]應該放入b中的位置下標p

2.a[i]放入b中對應的位置b[p]中

3.轉1

tips:

格式化輸出:

ans=b.join(" ")

把陣列的所有元素放入乙個字串。元素通過指定的分隔符進行分隔。

let n = parseint(readline());

let line = readline().split(" ");

let arr = new array();

for(let i = 0; i < n; i++)

let b = new array(n);

let flag = true;

let start = 0, end = n-1;

let p = start;

for(let i = n-1; i >= 0; i--)else

b[p] = arr[i];

}//格式化輸出

//let str = "";

//for(let i = 0; i < n-1; i++)

//str+=b[n-1];

//print(str);

//使用join格式化輸出

let ans = b.join(" ");

print(ans);

演算法 演算法測試題5 牛牛的數列 最長連續子串行

牛牛現在有乙個n個數組成的數列,牛牛現在想取乙個連續的子串行,並且這個子串行還必須得滿足 最多隻改變乙個數,就可以使得這個連續的子串行是乙個嚴格上公升的子串行,牛牛想知道這個連續子串行最長的長度是多少。輸入包括兩行,第一行包括乙個整數n 1 n 10 5 即數列的長度 第二行n個整數a i,表示數列...

智力測試題3

測試題目1 測試題目2 有一幢100層高的大廈,給你兩個完全相同的玻璃圍棋子。假設從某一層開始,丟下玻璃棋子就會摔碎。那麼怎麼利用手中的兩顆棋子,用一種什麼樣的最優策略,知道這個臨界的層高呢?解析 先從開始拋第一次 如果沒碎,再從拋第二次 如果還沒碎,再從拋第三次 如果還沒碎,再從拋第四次 如此,每...

python測試題 字典操作

def my func a,b c a for i in b.keys if i not in c c i b i return sorted c.items key lambda x x 1 輸出結果為 x 1 y 2 z 3 x 1 y 2 z 4 portfolio name代表品牌名,sha...