پاسخ سوال جدی کوئرا
در این نوشته تمرین “جدی” که در وبسایت کوئرا موجود است را برای شما کاربران عزیز حل کردهایم.
پاسخ سوال جدی کوئرا
بابای حسنی به حسنی سوالی را داده و به او گفته تا این سوال را حل کند. اما چون حسنی زیاد علاقهای به حل سوال ندارد، از شما خواسته تا این سوال را برای او حل کنید. آرایهای به نام به طول داریم. میخواهیم بلندترین زیردنبالهای از آرایه را پیدا کنیم که صعودی نزولی شود. حسنی به دنباله صعودی-نزولی میگوید اگر سه شرط زیر برای آن برقرار شود:
- به ازای برای هر i فرد که داشت:
- به ازای برای هر i زوج که داشت:
- برای i برابر با صفر میتوان گقت:
حال شما باید طول بلندترین زیردنبالهای از آرایه که صعودی-نزولی است را پیدا کنید و آن را چاپ کنید.
نکته: به آرایه b یک زیردنباله از آرایه میگوییم اگر بتوان با حذف تعدادی عضو از آرایه a به آرایه b رسید.
ورودی سوال جدی
در اولین خط ورودی عدد و در خط بعدی n عدد امده است که عدد ام مقدار خانه ام آرایه است.
خروجی سوال جدی
در تنها خط خروجی طول بلندترین زیردنباله صعودی-نزولی را بگویید.
حل سوال جدی
#include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; vector<int> don; don.resize(n); for(int i=0; i<n; i++) cin >> don[i]; bool soodi = false; bool nozoli = true; int tol = 1; for(int j=0; j<n-1; j++) { if(don[j] < don[j+1]) { if(soodi) { continue; } else { soodi = true; nozoli = false; tol ++; } } else { if(nozoli) { continue; } else { soodi = false; nozoli = true; tol ++; } } } cout << tol; }
منبع سوال: وبسایت کوئرا
اگر روش حل بهتری برای “تمرین جدی” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم. اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.
ارسال پاسخ