#35 [C++]. Kỹ Thuật Cửa Sổ Trượt | Sliding Window

Поделиться
HTML-код
  • Опубликовано: 7 фев 2025

Комментарии • 46

  • @28tech_
    @28tech_  2 года назад +2

    Thông tin các khóa học mình đang hướng dẫn : 28tech.com.vn/

  • @tim90s
    @tim90s 3 года назад +2

    Bác code đỉnh vãi! ý là lúc gõ á, rõ rất fluently

    • @28tech_
      @28tech_  3 года назад +2

      :D học gõ 10 ngón là nó nhanh ngay ấy mà.

    • @tim90s
      @tim90s 3 года назад +2

      @@28tech_ Mình cũng gõ 10 ngón tốc độ là 70 WPM, nhưng khi gõ ký tự đặc biệt thì nó sẽ chậm với hay sai.
      À mình thấy video của bác là do mình mới làm bài test bên DEV mà nó dùng 2 cái thuật toán là two pointers và window sliding để giải quyết bài toán đó. Đọc tiếng anh mãi thấy video của bác dễ hiểu hơn.

  • @toanzukari4963
    @toanzukari4963 2 года назад +1

    xử lý đoạn 7:34 buồn....cười quá a zai ơi 😆

  • @quanohong7393
    @quanohong7393 3 года назад

    video hay quá ạ :))))

    • @28tech_
      @28tech_  3 года назад +1

      Thank you :D

  • @ucphucmai7099
    @ucphucmai7099 3 года назад +1

    anh có thể dạy những kiến thức về các thuật toán như quy hoạch động , tham lam , quay lui , vét cạn được không ạ?? hi vọng anh sẽ ra video về loạt seri này

    • @28tech_
      @28tech_  3 года назад +7

      Chắc phải trong seri CTDL và GT bạn ạ, mình phải làm xong C++ đã :D. Hiện tại cũng hơi vướng nữa vì mình đang kèm vài bạn môn này nên chưa public được kiến thức, trong khoảng 2 tháng nữa sẽ có.

  • @namdo9319
    @namdo9319 Год назад +1

    sao bài sửa đèn trên codeptit lại tle nhỉ

  • @bichang4927
    @bichang4927 9 месяцев назад

    Thầy cho em xin bài tập của phần cửa sổ trượt với ạ

  • @khoaptit
    @khoaptit Год назад +2

    Anh ơi cái bài sửa đèn em dùng biến ans để lưu giá trị nhỏ nhất của cnt sau mỗi lần trượt cửa sổ và sau cùng in ra ans có được không ạ anh?(Đây là 2 vòng for em làm ạ) anh check giúp em với ạ!!!
    Em không phải fan MU ạ :))))
    int cnt = 0;
    for (int i = 1; i

  • @thangnguyen3786
    @thangnguyen3786 2 года назад

    anh có dự tính làm tiếp các series c++ kh ạ, như là giải những bài tập thuật toán

    • @28tech_
      @28tech_  2 года назад +1

      Em học hết chưa hehe.

  • @phongluu2681
    @phongluu2681 Год назад +1

    đoạn 42:25 sao lại s.erase(s.find(a[j-k])) vậy a

    • @Lunguyen08
      @Lunguyen08 Год назад

      tại vì cửa sổ đang xét lúc đó sẽ ko có phần tử a[j-k] mà nó sẽ có thêm a[j] nên phải xóa a[j-k] ra khỏi multiset đó bạn

  • @truyensieuhay1886
    @truyensieuhay1886 3 года назад

    8:44 lỗi là sau main() của anh không có ngoặc { mà ở sau lại bình thường ạ

    • @28tech_
      @28tech_  3 года назад +1

      Haha, thank you e. Nhiều khi code nó cũng ngớ ngẩn lắm.

  • @LamHoang-kn7de
    @LamHoang-kn7de Год назад +1

    bằng 1 cách nào đó thì bài 2 e xem đi xem lại vẫn kh hỉu 🥲🥲🥲

    • @baoreview7478
      @baoreview7478 Год назад

      bạn k hiểu chổ nào ?

    • @LamHoang-kn7de
      @LamHoang-kn7de Год назад

      @@baoreview7478thanks nhé mmak tui ngồi ngẫm vài tiếng thì hiểu r á :>

  • @KhanhTran-ii8go
    @KhanhTran-ii8go Год назад

    a ơi cái bài cửa sổ trượt e dùng sort rồi dùng vòng for so sánh 2 số liên tiếp có nhanh hơn cách của a ko?
    sort(nums.begin(), nums.end());
    for(int i=0; i

  • @quocanhpham6883
    @quocanhpham6883 Месяц назад

    cái file bài tập đó mọi người lấy ở đâu v

  • @nguyenhoa5409
    @nguyenhoa5409 3 года назад

    anh ơi cái bài cửa sổ trùng nhau 1 đấy em tưởng nếu dùng set thì lúc chèn phần từ vào set nó tự sắp xếp tăng dần sao vẫn ra kết quả đúng ạ, hay là cái lệnh s.erase kia nó xóa chính xác phần tử ở cái chỉ số đấy nên kể cả sắp xếp lại thì nó vẫn đúng ạ

    • @28tech_
      @28tech_  3 года назад +1

      Uh đúng rồi e ơi

  • @binhphuc3740
    @binhphuc3740 3 года назад

    anh ơi bài 2 cửa số trùng nhau 1 ở vòng for cửa sổ đầu tiên ấy ạ nếu mình insert a[i] trước xong mới kiểm tra thì có sao không anh

    • @28tech_
      @28tech_  3 года назад

      Không được e ơi, như thế thì nó sẽ xét ngay phải thằng vừa insert vào là phần tử thỏa mãn, ở đây 2 thằng phải khác nhau.

  • @nguyenhoa5409
    @nguyenhoa5409 3 года назад

    phần oop hướng đối tượng đã xong chưa anh hay vẫn còn vid nữa ạ

    • @28tech_
      @28tech_  3 года назад

      Uh còn phần đa hình nữa nhé e

  • @truong6201
    @truong6201 3 года назад

    anh ơi thêm câu lệnh gì để khi mình nhập input của nhiều test case vào hết rồi thì nó mới hiển thị output của nhiều test case ạ, em dùng dev c++ mà cứ mỗi test case thì nó lại hiện kết quả rồi nhập tiếp input thì nó hiển thị tiếp output

    • @28tech_
      @28tech_  3 года назад

      Kệ nó ko vấn đề gì đâu

  • @haminh6219
    @haminh6219 3 года назад

    k vào đc link group a ơi

    • @28tech_
      @28tech_  3 года назад

      Uh group tạm thời a đóng rồi vì chưa có thời gian để quản lý.

  • @HuyenNguyen-hd5wy
    @HuyenNguyen-hd5wy 2 года назад

    anh ơi cho e hỏi ở phần số đèn cần sửa tối thiểu, tại sao cnt = cnt - a[i-k] + a[i] vậy ạ

  • @MinhVucdt63
    @MinhVucdt63 6 месяцев назад

    anh xem giúp em bài cửa sổ trùng nhau 1 em làm như vầy đúng ko ạ
    #include"bits/stdc++.h"
    using namespace std;
    int main(){
    int t; cin>>t;
    while(t-->0){
    int n, k; cin>>n>>k;
    int a[n];
    for(int i=0; i>a[i];
    setse;
    int p=0, s=k;
    for(int i=0; i

  • @xthbao1
    @xthbao1 4 месяца назад

    Bác cho cháu xin cái file đấy được không ậ

    • @28tech_
      @28tech_  4 месяца назад

      @@xthbao1 cháu xin ntn thì bác chịu

    • @xthbao1
      @xthbao1 4 месяца назад

      @@28tech_ Dạ, là sao bác

  • @khoaptit
    @khoaptit Год назад +1

    Anh ơi cái bài cửa số trùng nhau 1 em không dùng set mà em làm theo cách trượt cửa sổ k phần tử một như này được không ạ anh
    Anh check giúp em với ạ!!!
    Em chưa phải fan MU ạ :>>>
    int v[100001];
    int v1[100001] = { 0 };
    void solve() {
    int n, k;
    cin >> n >> k;
    bool check = false;
    for (int i = 0; i < n; ++i) {
    cin >> v[i];
    v1[i]++;
    }
    for (int i = 0; i < k; ++i) {
    if (v1[i] >= 1) {
    check = true;
    break;
    }
    }
    if(check == false){
    for (int i = k; i < n; ++i) {
    --v1[i - k];
    for(int j = i + 1; j < k; ++j) {
    if (v1[j] >= 1) {
    check = true;
    break;
    }
    }
    }
    }
    if (check == true) cout

    • @28tech_
      @28tech_  Год назад +1

      Được em

    • @pogbapaul7653
      @pogbapaul7653 Год назад

      bạn ơi, cho mình hỏi mảng v1 lưu giá trị gì nhỉ? với cả ở vòng for thứ nhất có đoạn v1[i]++ tức là mảng v1 từ 0->n-1 đều =1 rồi, nên là sang vòng for thứ 2 thì luôn luôn check = true rồi break luôn chứ nhỉ? gthich giúp mình với mình chưa hiểu lắm :(((((((

  • @hoangphuc899
    @hoangphuc899 Год назад

    anh giải mấy bài gì đâu mà nâng cao quá mức vậy anh ơi! 😢