牛客題霸 旋轉陣列 C 題解 答案

2021-10-10 07:27:18 字數 505 閱讀 3825

牛客題霸 [ 旋轉陣列] c++題解/答案

乙個陣列a中存有n(n>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移m(m>=0)個位置,即將a中的資料由(a0 a1 ……an-1 )變換為(an-m …… an-1 a0 a1 ……an-m-1 )(最後m個數迴圈移至最前面的m個位置)。如果需要考慮程式移動資料的次數盡量少,要如何設計移動的方法?

很多人都用額外的變數來實現移動,我這提供乙個比較巧妙的思路

[1,2,3,4,5,6]—>[5,6,1,2,3,4]

我們可以先將整個陣列翻轉

就成:[6,5,4,3,2,1]

因為是移動m,所以我們前m個數字再翻轉

就成:[5,6,4,3,2,1]

我們再將第m+1位到最後,所有數翻轉

就成:[5,6,1,2,3,4]

這樣就實現了移動,還沒有用到其他任何變數

class

solution

};

牛客題霸 旋轉字串 C 題解 答案

牛客題霸 旋轉字串 c 題解 答案 字串旋 給定兩字串a和b,如果能將a從中間某個位置分割為左右兩部分字串 都不為空串 並將左邊的字串移動到右邊字串後面組成新的字串可以變為字串b時返回true。例如 如果a youzan b zanyou a按 you zan 切割換位後得到 zanyou 和b相同...

牛客題霸 求路徑 C 題解 答案

牛客題霸 求路徑 c 題解 答案 乙個機械人在m n大小的地圖的左上角 起點,下圖中的標記 start 的位置 機械人每次向下或向右移動。機械人要到達地圖的右下角。終點,下圖中的標記 finish 的位置 可以有多少種不同的路徑從起點走到終點?原本想遞迴做,發現複雜度過高 動態規劃做法 我們先設定邊...

牛客題霸 括號序列 C 題解 答案

牛客題霸 括號序列 c 題解 答案 給出乙個僅包含字元 和 的字串,判斷給出的字串是否是合法的括號序列 括號必須以正確的順序關閉,和 都是合法的括號序列,但 和 不合法。用棧來做 用棧來存每個符號的左邊,當出現符號右邊時,看棧的頂部是否為該符號的左邊,如果不能匹配則返回0,能匹配則將棧頂pop 全部...