1.6 給定一幅由n*n矩陣表示的如下,其中每個畫素的大小為4個位元組,編寫乙個方法,將影象旋轉90度。不占用額外記憶體空間能否做到?
類似leetcode:rotate image
思路:
我們這裡以逆時針旋轉為例(寫**時比較容易理解,順時針旋轉的實現思想相似),可以先將原矩陣以主對角線為對稱軸,交換主對角線兩側的的元素,得到新的矩陣(如果是順時針旋轉,可以交換副對角線兩側的元素),再將該矩陣的第i行和第n-i-1行相交換,即得到逆時針旋轉後的矩陣。
c++**實現:
#includeusingnamespace
std;
void rotate(int (*arr)[4],int
n) }
for(i=0; i2; i++)
for(j=0; j)
swap(arr[i][j],arr[n-i-1
][j]);
}int
main()
, ,,};
rotate(a,4);
for(int i=0; i<4; i++)
}
careercup 陣列和字串1 1
1.1 實現乙個演算法,確定乙個字串的所有字元是否全部不同。假設不允許使用額外的資料結構,又該如何處理?c 實現 include include include using namespace std 判斷是否有重複字元 bool unqstring strings inti for i 0 i w...
careercup 陣列和字串1 8
1.8 假定有乙個方法issubstring,可檢查乙個單詞是否為其他字串的子串。給定兩個字串s1和s2,請編寫 檢查s2是否為s1旋轉而成,要求只能呼叫一次issubstring。旋轉字串 waterbottle 是 erbottlewat 的旋轉字串。題目說我們使用一次issubstring函式...
字串和字串陣列
字串陣列 include int main int argc,const char ar printf name1 s n name1 name1 zhangsan 部分初始化中,沒有被初始化的元素預設是0,0 對應的ascii值是 0 char name2 9 printf name2 s n n...