هاتکدز — زمین بازی برای برنامهنویس شدن
پلتفرم جامع یادگیری، سنجش الگوریتم و حل مسائل برنامهنویسی به زبان فارسی همراه با کامپایلر آنلاین و رقابت زنده. ساختهشده برای تسلط عمیق بر مبانی علوم کامپیوتر و آمادگی مصاحبههای فنی.
نردبان پیشرفت | C++
مسیر هدایتشده از صفر تا مباحث پیشرفته
۱. ویدیوی آموزشی تعاملی
مفاهیم متغیرها، شروط و حلقههای تکرار
۲. تمرین و حل کد در مرورگر
پیادهسازی ۵ الگوریتم پایه با داوری آنلاین
۳. چالش زماندار و تست نهایی
سنجش سرعت اجرا، مصرف حافظه و رتبه
اگر میخواهید برنامهنویسی را اصولی یاد بگیرید، از همینجا شروع کنید — آموزش گامبهگام با تمرین و سیستم داوری خودکار.
شروع مسیر یادگیری C++ arrow_leftامکانات و ابزارهای اصلی پلتفرم
ابزارهای مدرن طراحیشده برای تمرین مستمر، ارزیابی دقیق پاسخها و ارتقای مهارت در کدنویسی رقابتی.
بانک سوالات جامع (Problemset)
صدها مسئله الگوریتمی و ساختمان داده برای تمرین، تسلط و آمادگی مصاحبههای فنی شرکتهای معتبر داخلی و بینالمللی همراه با راهنما و تحلیل پیچیدگی زمانی.
ارسالها و داوری آنلاین
ارسال کد با زبانهای مختلف، مشاهده فوری وضعیت پذیرفتهشده (Accepted)، زمان اجرا، حافظه مصرفی و تاریخچه داوری تمام تلاشها.
جدول امتیازها (Scoreboard)
رتبهبندی زنده کاربران بر اساس امتیاز، تعداد سوالات حلشده و استمرار در تمرین. انگیزه سالم برای رقابت سازنده در جامعه برنامهنویسان.
کامپایلر آنلاین ابری
محیط اجرای سریع و ابری برای کدهای C++، Python، Java، Kotlin و JavaScript بدون نیاز به نصب هرگونه پکیج یا تنظیمات پیچیده محلی.
اشتراککد (Sharecode)
ذخیره و اشتراکگذاری سریع قطعهکدها و ساخت لینکهای اختصاصی برای تبادل نظر با منتورها و همکاران.
مسئله: کوتاهترین فاصله با الگوریتم دایکسترا
یک گراف جهتدار و همبند با N رأس و M یال وزندار مثبت داده شده است. کوتاهترین فاصله بین رأس مبدا S و کلیه رئوس دیگر را با کمترین پیچیدگی زمانی ممکن محاسبه و چاپ کنید.
4 4 1 1 2 2 1 3 4 2 3 1 3 4 3
01#include <bits/stdc++.h> 02using namespace std; 03 04const long long INF = 1e18; 05 06void dijkstra(int start_node, int n, const vector<vector<pair<int, long long>>>& adj) { 07 vector<long long> dist(n + 1, INF); 08 priority_queue<pair<long long, int>, vector<pair<long long, int>>, greater<>> pq; 09 10 dist[start_node] = 0; 11 pq.push({0, start_node}); 12 13 while (!pq.empty()) { 14 auto [d, u] = pq.top(); pq.pop(); 15 if (d > dist[u]) continue; 16 17 for (auto& [v, w] : adj[u]) { 18 if (dist[u] + w < dist[v]) { 19 dist[v] = dist[u] + w; 20 pq.push({dist[v], v}); 21 } 22 } 23 } 24}
آمادهاید مهارتهای برنامهنویسی خود را محک بزنید؟
به جمع توسعهدهندگان هاتکدز بپیوندید. بدون نیاز به نصب هیچ ابزاری، اولین مسئله الگوریتمی خود را همین حالا حل کنید و سطح فنی خود را ارتقا دهید.