• 🚀 Đăng ký ngay để không bỏ lỡ những nội dung chất lượng! 💯 Hoàn toàn miễn phí!

Có Video Toán và thuật toán mỗi ngày

Giả sử bạn có một lưới m×nm \times nm×n và robot có thể chỉ di chuyển xuống hoặc sang phải. Nhiệm vụ của bạn là tính số cách đi từ ô (0, 0) đến ô (m-1, n-1).
 
thử dùng quy hoạch động bằng Go :shame:
C:
func uniquePaths(m int, n int) int {
    if m == 0 || n == 0 {
        return 0
    }

    dp := make([][]int, m)   
    for i := 0; i < len(dp); i++ {
        dp[i] = make([]int, n)
    }

    dp[0][0] = 1
    for r := 0; r < m; r++{
        for c := 0; c < n; c++{
            if r - 1 >= 0 {
                dp[r][c] += dp[r-1][c]
            }
            if c - 1 >= 0 {
                dp[r][c] += dp[r][c-1]
            }
        }
    }

    return dp[m-1][n-1]
}
 
Bài này nó là kinh điển của qhd rồi. Nên con chatgpt giải phút mốt là chuyện đương nhiên, tranh cãi làm gì. Còn thích đề mới thì Leetcode hàng tuần có contest đó, vô tab Contest xong chọn cái gần nhất r cho con gpt làm thử xem đc bn %. Mấy đề trong contest đảm bảo chưa có trên mạng trc đó.
 
Luyện làm mẹ gì rồi để mấy thằng ngu nó lừa cho làm cho nó cuối cùng bị đá đít hoặc bóc lột gián tiếp qua các kênh khác.
 
chatGPT nó học cái bài này rồi thì đương nhiên là giải được, ông thầy tao tự nghĩ ra một cái đề chưa có trên mạng thì nó ko giải được.
Kaka đúng rồi tao có mấy cái đề cũ năm 2k10, nó đéo giải đc, con bot này ko biết cũng chế cháo giải tầm bậy, thag ngu nào ko có kiến thức là chết
 
Bài này dùng bfs cũng đc, hoặc có cách dùng quy hoạch động. Dp(i, j) là số cách đi được tới ô (i, j), số cách này bằng tổng Dp(i-1, j) + Dp(i, j-1). Nôm na để đi đc tới ô (i, j) thì robot chỉ có thể đứng ở ô (i-1, j) hoặc ô (i, j-1) trước đó thôi. Nên số cách đi đc tới ô (i, j) bằng tổng số cách đi được tới ô (i-1, j) cộng với số cách đi đc tới ô (i, j-1).

Dp(i, j) = Dp(i- 1, j) + Dp(i, j-1)

code python dùng Dp theo suggest của mày, thanks nhé

from collections import deque
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
dp = [[0 for _ in range(n+1)] for _ in range(m + 1)]
dp[1][1] = 1
for i in range(1, m + 1):
for j in range(1, n + 1):
if (i == 1 and j == 1) == False:
dp[i][j] = dp[i-1][j] + dp[i][j-1]
return dp[m][n]
 
Sửa lần cuối:
Con Gemini bản Free hỗ trợ code cũng ngon
Tao quăng code mẫu và đặt yêu cầu thì nó sinh code hoàn chỉnh sau vài giây.
Hầu như không phải chỉnh lại gì
 
Con Gemini bản Free hỗ trợ code cũng ngon
Tao quăng code mẫu và đặt yêu cầu thì nó sinh code hoàn chỉnh sau vài giây.
Hầu như không phải chỉnh lại gì
mấy bài leetcode thì nó giải đc hết mày ơi, đưa mấy bài contest của codeforce thì nó chịu
 
Con Gemini bản Free hỗ trợ code cũng ngon
Tao quăng code mẫu và đặt yêu cầu thì nó sinh code hoàn chỉnh sau vài giây.
Hầu như không phải chỉnh lại gì
vd những bài như thế này thì nó giải bằng mắt Problem - F - Codeforces. mấy thằng AI thì nó học rồi dùng xác suất để đưa ra kết qua thôi chứ nó đã tư duy đc đâu
 
mấy bài leetcode thì nó giải đc hết mày ơi, đưa mấy bài contest của codeforce thì nó chịu
Thì nó chủ yếu hỗ trợ code.
Với lại phải biết cách hỏi nó. Nhiều khi có những cái tao muốn nó làm nhưng đặt yêu cầu thì nó sinh code không đúng ý, nhưng đổi câu hỏi đi một tí lại được.
Nên những bài phức tạp khả năng mình phải chỉ đường từng bước cho nó làm theo kiểu ráp code cơ bản
Được cái là quẳng code vào yêu cầu nó phân tích để học code hay rút kinh nghiệm thì tuyệt vời. Nó phân tích cực chi tiết
 
Thì nó chủ yếu hỗ trợ code.
Với lại phải biết cách hỏi nó. Nhiều khi có những cái tao muốn nó làm nhưng đặt yêu cầu thì nó sinh code không đúng ý, nhưng đổi câu hỏi đi một tí lại được.
Nên những bài phức tạp khả năng mình phải chỉ đường từng bước cho nó làm theo kiểu ráp code cơ bản
Được cái là quẳng code vào yêu cầu nó phân tích để học code hay rút kinh nghiệm thì tuyệt vời. Nó phân tích cực chi tiết
Theo tao hiểu thì mấy con gen AI hiện tại nó đang làm theo kiểu này. Câu tiếp theo nó generate ra phụ thuộc vào câu trước đó, nó tính trong token của nó, dùng mấy khoảng cách về cosin similarly, dựa vào đó nó sẽ có một tập kí tự tiếp theo cần generate ra, trong tập kí tự đó thì nó dựa vào xác suất để nó chọn từ tiếp theo có xác suất đúng cao nhất ( tham số nó đc học càng nhiều thì cái xác suất này càng đc tính chính xác hơn) nó hoàn toàn dựa vào bộ dữ liệu đã đc đưa vào và dùng xác suất để tính câu từ tiếp theo. Vậy nên câu hỏi của mày rất quan trọng vì nó là điểm khởi đầu để nó bắt đầu generate các kí tự tiếp theo, điểm khởi đầu mà sai thì mấy cái sau đó sẽ bị sai
 
Giờ thị trường việc làm như cái lồn. Trên Reddit có thằng phỏng vấn Junior Amazon mà làm hằn 3 câu hard LC kia.
Bình thường mà mày, junior thì chưa có kn nên nó chỉ tập trung hỏi thuật toán, nên nó hỏi nhiều câu hard cũng đúng, còn có kinh nghiệm rồi nó hỏi thêm cả system design nữa mới bỏ mẹ
 
hôm nay chuyển qua bài hard của phần DP. Thằng nào biết vô giải chung nhé
Regular Expression Matching - LeetCode
Tao có một hướng là duyệt từng ký tự của dãy ký tự của pattern nếu match thì nhảy đến ký tự tiếp theo và ghi nhận index.
Sau khi duyệt hết thì check index nào là dãy liên tục thì lấy.
Cách duyệt là duyệt 2 đầu của pattern với vị trí cắt là dấu *
 
Tao có một hướng là duyệt từng ký tự của dãy ký tự của pattern nếu match thì nhảy đến ký tự tiếp theo và ghi nhận index.
Sau khi duyệt hết thì check index nào là dãy liên tục thì lấy.
Cách duyệt là duyệt 2 đầu của pattern với vị trí cắt là dấu *
code thử xem có chạy ko, giờ tao phải làm việc của cty đã. Tối rảnh mới code đc
 
Tao có một hướng là duyệt từng ký tự của dãy ký tự của pattern nếu match thì nhảy đến ký tự tiếp theo và ghi nhận index.
Sau khi duyệt hết thì check index nào là dãy liên tục thì lấy.
Cách duyệt là duyệt 2 đầu của pattern với vị trí cắt là dấu *
Bài này nó đang check True False mà, lấy dãy liên tục là sao? Xử lý cái dấu . và * như thế nào. Cái thằng dấu * có vẻ khó xử lý nhất vì nó chấp nhận không tồn tại nên đéo so sánh bình thường đc
 

Có thể bạn quan tâm

Top