इस समस्या में, हमें एक 2-आयामी मैट्रिक्स दिया गया है। और हमारा काम मैट्रिक्स के तत्वों को वामावर्त सर्पिल में से प्रिंट करना है।
वामावर्त सर्पिल रूप - यह एक सर्पिल ट्रैवर्सल है जो ऊपर-बाएं से शुरू होता है और वामावर्त दिशा में पहले नीचे-दाएं-ऊपर-बाएं जाता है।
वामावर्त ट्रैवर्सल 1 5 9 13 14 15 16 12 8 4 3 2 6 10 11 7 होगा।
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं
Input: 2 4 6 1 7 9 5 0 3 Output: 2 1 5 0 3 9 7
इस समस्या को हल करने के लिए, हम चार लूप और प्रत्येक का एक दिशा में उपयोग करेंगे और उनकी दिशा को प्रारंभ करेंगे और उसी के अनुसार आगे बढ़ेंगे।
उदाहरण
हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम
#include <bits/stdc++.h> using namespace std; #define R 3 #define C 3 void printCounterClockwiseSpiral(int m, int n, int matrix[R][C]){ int i, k = 0, l = 0; int count = 0; int total = m * n; while (k < m && l < n){ if (count == total) break; for (i = k; i < m; ++i){ cout<<matrix[i][l]<<" "; count++; } l++; if (count == total) break; for (i = l; i < n; ++i){ cout<<matrix[m - 1][i]<<" "; count++; } m--; if (count == total) break; if (k < m){ for (i = m - 1; i >= k; --i){ cout<<matrix[i][n - 1]<<" "; count++; } n--; } if (count == total) break; if (l < n){ for (i = n - 1; i >= l; --i){ cout<<matrix[k][i]<<" "; count++; } k++; } } } int main() { int mat[R][C] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9} }; cout<<"Conter Clockwise Spiral from of the matrix is :\n"; printCounterClockwiseSpiral(R, C, mat); return 0; }
आउटपुट
मैट्रिक्स से काउंटर क्लॉकवाइज स्पाइरल है -
1 4 7 8 9 6 3 2 5