thảo luận Leetcode + Codeforces, Competitive programming contest. Đường tới Guardian + Candidate Master.

  • Người tạo chủ đề Người tạo chủ đề freedom.9
  • Ngày bắt đầu Ngày bắt đầu
brtue force như nào thế thím tôi chưa tưởng tượng ra? substring ở y chứ x là subsequence mà
với mỗi substring bắt đầu ừ i (0-len y) xem nó trùng dc dài sub sequence x tới đâu thì O(len(y) * len(x)) là ra dc kết quả đúng ko nhỉ.(substring là chuỗi liên tiếp ko ngắt mà đúng ko bác) so len 2 subsequence dài nhất mới xài dp
 
2 thím draft quả solution phát, chẳng nhẽ tôi overthinking dp ngồi debug mãi mới ra
 
Với mỗi vị trí start i ở Y, for j đến cuối, thím dùng thêm 1 biến nữa để while bên x cho tới khi nó trùng với kí tự Y[j] là được
 
2 thím draft quả solution phát, chẳng nhẽ tôi overthinking dp ngồi debug mãi mới ra
Java:
        int cnt=0;
        int res =0;
        for(int i =0 ;i <y.length();i++){
            cnt=0;
            for(int j=0;i+cnt<y.length() && j<x.length();j++){
                if(y.charAt(i+cnt)==x.charAt(j)){
                    cnt++;
                }
            }
            res = Math.max(res, cnt)
        }
        return res;
 
tôi cũng thấy lạ, bình thường pv ở mấy công ty Việt chả bao giờ dính thuật.
Btw đề cũng dễ nhớ cho ae quẩy: top down, bottom up chắc chục dòng.
Input: String x and y length < 2000. Find longest common string which is sub sequence of x and is substring of y. Output: Int
Bài long common subsequence mới cần tới DP. Bài này là 1 sub sequence và 1 substring thì dùng 2 pointer là giải được mà nhỉ. TC: O(len(x) + len(y))
 
2 thím draft quả solution phát, chẳng nhẽ tôi overthinking dp ngồi debug mãi mới ra
Python:
def sol(str1, str2):
    m, n, i, j = len(str1), len(str2), 0, 0
    res = 0
    while i < m and j < n:
        if str1[i] == str1[j]:
            res += 1
            i += 1
            j += 1
        else:
            i += 1
    return res
 
Bài long common subsequence mới cần tới DP. Bài này là 1 sub sequence và 1 substring thì dùng 2 pointer là giải được mà nhỉ. TC: O(len(x) + len(y))

Python:
def sol(str1, str2):
    m, n, i, j = len(str1), len(str2), 0, 0
    res = 0
    while i < m and j < n:
        if str1[i] == str1[j]:
            res += 1
            i += 1
            j += 1
        else:
            i += 1
    return res
x = "bbbbbbbb" y ="abbbb" thì j=0 mãi không lên dc phen
 
Mình thấy làm thuật toán vẫn vui, dù đi phỏng vấn éo bị hỏi
Đợt này sếp có giao mình 1 task liên quan tới geocoding, về cơ bản có quả xử lý check xem điểm có thuộc polygon hay k. Ngồi tối ưu cũng vui phết :D
 
Chắc là Meta, đi phá băng dự án khách nhưng khách nói không biết thuật toán thì miễn thương lượng :D
Thời của AI, công nghệ càng đi nhanh mà ko biết những cái nền tảng thì đúng là khỏi nên thương lượng thật.
Cơ mà lương trả thì ko cao lại đòi biết thuật toán thì sao mà đủ lương trả cho ứng viên được.
 
giải được mỗi Q1:
Java:
class Solution {
    public int gcdOfOddEvenSums(int n) {
        return n;
    }
}
 

Thống kê chủ đề

Ngày tạo
freedom.9,
Người trả lời cuối
deple20k,
Trả lời
1.686
Lượt xem
107.150
Quay lại
Lên đầu trang