Có youtube, geeksforgeeks nhiều kiến thức, còn luyện tập thì có leetcodeKhông liên quan nhưng em thấy toàn pro nên cho em hỏi xíu, em năm nay ms vào đại học nên ms tập tành học đc c++ cơ bản, bây h muốn học thuật toán thì có trang web nào hay sách nào dạy dễ hiểu và đầy đủ ko ạ, cho em xin vs,
gán jt = find từ it rồi gán it = jt thì tuy 2 vòng lặp lồng nhau nhưng chỉ mất có O(n) thoytheo mình thấy code theo cách j thì cũng phải 2 vòng lặp, như bác kia dùng stl std::adjacent_find(it, end(p), std::greater<int>{} thực ra cũng là 1 vòng lặp ở trong.
Bác code gán biến trong if thì đúng là đọc đau mắt thật, lại còn lạm dụng STD nữa. Thay vì dùng distance thì chỉ cần (jt - it) thôitôi code điêu để gà mờ đọc vô ko hiểu, đáng lẽ ko nên viết bài giải thích
thằng thì bảo thích xài distance để dễ bề đổi kiểu containerI would prefer std::distance(vec.begin(), it) as it will allow me to change the container without any code changes. For example, if you decide to use std::list instead of std::vector
thằng thì bảo ngược lạiI would prefer it - vec.begin() precisely for the opposite reason given by Naveen: so it wouldn't compile if you change the vector into a list. If you do this during every iteration, you could easily end up turning an O(n) algorithm into an O(n^2) algorithm.
Ốp nguyên code của bác vào nhanh nhất lớp luônC++:int solve(vector<int> a) { int n = size(a); // f[i] = length of longest subsequence of form [j, j + 1, j + 2, ..., i] vector<int> f(n + 1); for (int x : a) f[x] = f[x - 1] + 1; return n - *max_element(begin(f), end(f)); }
View attachment 839111
Đây là đoạn code dùng để nhập giá trị của n bằng cách gọi Read(n). nó tương tự với câu lệnh cin >> n. Cho mình hỏi khi nào thì lên dùng cách viết này để nhập giá trị cho n ?? Mình thấy người ta dùng nó trong 1 khóa học
Mình nghĩ ôn chắc data structure đã r học thuật toán sauMình mới đọc blog họ bảo nắm vứng 10 thuật toán này, các tiền bối có tài liệu gì ko chia sẻ cho em với
10 thuật toán: đệ quy, Sắp xếp, tìm kiếm nhị phân, tìm kiếm, thuật toán băm, thuật toán tham lam, thuật toán chia và chinh phục, thuật toán quay lui, lập trình động, thuật toán so khớp chuỗi.
bác này nói chuẩn nè. mún apply thuật toán thì phải biết về data structure trước. thế nên câu Cấu Trúc Dữ Liệu và Giải Thuật lun đi với nhauMình nghĩ ôn chắc data structure đã r học thuật toán sau