Diyelim ki aşağıdaki (2B) matrisim var:
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Matrisi saatin tersi yönünde döndürün R
(90 derecelik artışlarla değil, her seferinde yalnızca 1 sayı),
1 2 3 4 2 3 4 8 3 4 8 12
5 6 7 8 --> 1 7 11 12 --> 2 11 10 16
9 10 11 12 5 6 10 16 1 7 6 15
13 14 15 16 9 13 14 15 5 9 13 14
Tamamlanan örnek:
Giriş:
2
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Çıktı:
[[3, 4, 8, 12],
[2, 11, 10, 16],
[1, 7, 6, 15],
[5, 9, 13, 14]]
(garip boşluklar sayıları güzel sütunlarda hizalamak içindir)
Matrisin dış "halkası" saat yönünün tersine 2 döndürür ve iç sağ da 2 döndürür. Bu matriste sadece iki halka var.
1 "ring" içeren bir örnek:
2
[[1, 2],
[3, 4],
[5, 6]]
Çıkması gerekir:
[[4, 6],
[2, 5],
[1, 3]]
Buradaki zorluk, bir matris ve bir tamsayı almak R
ve çevrildikten sonra çevrilmiş halini almak R
.
4x5'lik bir matrisin dönmesi aşağıdaki şekilde gösterilir:
Kısıtlamalar:
2 ≤ M, N ≤ 100
M ve N, matrisin boyutlarıdır. Minimum M ve N'nin bile olacağı garantilidir.1 ≤ R ≤ 80
, burada r, dönüşlerin sayısıdır.- Matris sadece pozitif tamsayılar içerecektir.
- Değerler her zaman belirgin değildir.
- Girdi her zaman 2B dizisi olmalıdır (2B dizisi olarak çalışma zamanı girdisini alamıyorsanız, giriş almak için başka bir yol bulmanız gerekir).
Belirsiz değerleri olan başka bir test durumu:
1
[[1, 1],
[2, 2],
[3, 3]]
Çıktılar:
[[1, 2],
[1, 3],
[2, 3]]
Bu kod golf , bu yüzden en kısa cevap kazanır!
[[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 16], [5, 9, 13, 14]]
16 birdenbire olması gerektiği tahmin yineleniyor: [[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 15], [5, 9, 13, 14]]
?