ধরুন আমাদের কাছে সংখ্যা নামক তালিকার একটি তালিকা আছে, আমাদের সংখ্যার সমস্ত উপাদানকে তির্যক ক্রমে দেখাতে হবে।
সুতরাং, যদি ইনপুট মত হয়
তাহলে আউটপুট হবে [1,6,2,8,7,3,9,4,12,10,5,13,11,14,15,16]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি অ্যারে ret সংজ্ঞায়িত করুন
-
একটি 2D অ্যারে v
সংজ্ঞায়িত করুন -
আরম্ভ করার জন্য i :=0, যখন i <সংখ্যার আকার, আপডেট (i 1 দ্বারা বৃদ্ধি), −
-
j শুরু করার জন্য :=0, যখন j <সংখ্যার আকার[i], আপডেট করুন (j 1 দ্বারা বৃদ্ধি করুন), করুন −
-
v
এর শেষে { nums[i, j], i, j } সন্নিবেশ করুন
-
-
-
অ্যারে সাজান v
-
প্রতিটির জন্য এটি v, do,
-
এটি [0] ret-এর শেষে ঢোকান
-
-
রিটার্ন রিটার্ন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#includeনেমস্পেস ব্যবহার করে std;void print_vector(vector v){ cout <<"["; for(int i =0; i &a, ভেক্টর &b){ int sum1 =a[1] + a[2]; int sum2 =b[1] + b[2]; যোগফল 1 ==যোগফল 2? a[1]> b[1] :sum1 FindDiagonalOrder(ভেক্টর এবং সংখ্যা) { ভেক্টর ret; ভেক্টর<ভেক্টর > v; (int i =0; i > v ={{1,2,3,4,5},{6,7},{8},{9,10,11},{12,13,14,15,16 }}; print_vector(ob.findDiagonalOrder(v));}
ইনপুট
{{1,2,3,4,5},{6,7},{8},{9,10,11},{12,13,14,15,16}}