thảo luận Leetcode contest, đường tới Guardian

  • Người tạo chủ đề Người tạo chủ đề freedom.9
  • Ngày bắt đầu Ngày bắt đầu
Trạng thái
Không mở để trả lời thêm.
Xem tệp đính kèm 2362398
Hardwork must be paid off các fence ơi :ah: lần đầu giải được 4 bài mừng quá hahahaha
Bài cuối để print nó ghi output limit exceed đm leetcode sida :ah: làm bug 1 phát cmnr :ah:
T cũng vừa làm xong, lần đầu làm được 4 câu :D
1709437224025.png
 
Mấy bài matrix ko làm nhiều dễ loạn lắm.
Q2 mình xài dp đó fence
Bài đó em brute force bị LTE.
Sau đó phải tìm cách tính linh ta linh tinh, vẫn được accept ( em không biết gì về khái niệm DP hay các cái giải thuật, trước giờ toàn làm theo cảm tính :too_sad: )



var countSubmatrices = function(g, k) { const e = []; let c = 0 for (let i = 0; i < g.length; i++) { const row = Array(g[0].length).fill(0); e.push(row); } let s1 = 0 for(let i = 0; i < g.length; i++){ s1 += g[i][0] e[i][0] = s1 if(s1 <= k){ c++ } } let s2 = 0 for(let i = 0; i < g[0].length; i++){ s2 += g[0][i] e[0][i] = s2 if(s2 <= k && i !== 0){ c++ } } for(let i = 1; i < g.length; i++){ for(let j = 1; j < g[0].length; j++){ e[i][j] = e[i-1][j] + e[i][j-1] - e[i-1][j-1] + g[i][j] if(e[i][j] <= k){ c++ } } } return c; };
 
Bài 4 có mấy cái AVL tree, Segment tree, Fenvich fenwich gì gì đó hay vãi. Để thời gian ngâm cứu mấy cái nâng cao này mới được o_O
 
Bài đó em brute force bị LTE.
Sau đó phải tìm cách tính linh ta linh tinh, vẫn được accept ( em không biết gì về khái niệm DP hay các cái giải thuật, trước giờ toàn làm theo cảm tính :too_sad: )



var countSubmatrices = function(g, k) { const e = []; let c = 0 for (let i = 0; i < g.length; i++) { const row = Array(g[0].length).fill(0); e.push(row); } let s1 = 0 for(let i = 0; i < g.length; i++){ s1 += g[i][0] e[i][0] = s1 if(s1 <= k){ c++ } } let s2 = 0 for(let i = 0; i < g[0].length; i++){ s2 += g[0][i] e[0][i] = s2 if(s2 <= k && i !== 0){ c++ } } for(let i = 1; i < g.length; i++){ for(let j = 1; j < g[0].length; j++){ e[i][j] = e[i-1][j] + e[i][j-1] - e[i-1][j-1] + g[i][j] if(e[i][j] <= k){ c++ } } } return c; };
Bài 2 của mình đây, công thức là sum(i,j)= sum(i-1, j) + sum (i, j - 1) - sum (i - 1, j -1)
Cái này có thể apply cho bài toán tìm sum của 1 square bất kì trong matrix được luôn, đợt gần đây thấy meta với google hay cho bài toán tính sum của 1 square bất kì trong matrix
Python:
class Solution:
    def countSubmatrices(self, grid: List[List[int]], k: int) -> int:
        m = len(grid)
        n = len(grid[0])
        if grid[0][0] > k:
            return 0
       
        ans = 0
        dp = [[0 for _ in range(n)] for _ in range(m)]
        for i in range(m):
            for j in range(n):
                if i == 0 and j == 0:
                    ans += 1
                    dp[0][0] = grid[0][0]
                else:
                    x = y = 0
                    if j - 1 < 0:
                        x = 0
                    else:
                        x = dp[i][j - 1]
                       
                    if i - 1 < 0:
                        y = 0
                    else:
                        y = dp[i- 1][j]
                   
                    sum = x + y
                    if i - 1 >= 0 and j - 1 >= 0:
                        sum -= dp[i-1][j - 1]
                       
                    dp[i][j] = grid[i][j] + sum
                    if dp[i][j] <= k:
                        ans +=1

        return ans

Python:
class Solution:
    def countSubmatrices(self, grid: List[List[int]], k: int) -> int:
        m = len(grid)
        n = len(grid[0])
        if grid[0][0] > k:
            return 0
        
        ans = 0
        dp = [[0 for _ in range(n)] for _ in range(m)]
        for i in range(m):
            prefixSum = 0
            for j in range(n):
                prefixSum += grid[i][j]
                dp[i][j] = prefixSum
                if i - 1 >= 0:
                    dp[i][j] += dp[i - 1][j]
            
                if dp[i][j] <= k:
                    ans +=1
                
        return ans
 
Sửa lần cuối:
Đm weak testcases q4 nữa rồi, hi vọng tụi nó rejudge đừng cancel.
Mấy thằng C++ giải On^2 vẫn pass :too_sad:

via theNEXTvoz for iPhone
 
Đm weak testcases q4 nữa rồi, hi vọng tụi nó rejudge đừng cancel.
Mấy thằng C++ giải On^2 vẫn pass :too_sad:

via theNEXTvoz for iPhone
Mình nghĩ là sẽ có rejudge. Cho testcase một dãy giảm 10^5 phần tử là những solution time complexity O(n^2) sẽ bị TLE thôi.
Nhưng mình nghĩ phải cho một dãy 2* 10^5 phần tử thì mới chắc ăn quét hết solution O(n^2).
 
Top8, cao thủ phương nào đây :oh:

via theNEXTvoz for iPhone

flashmt là tay to trong làm CP rồi bác, bạc HSG Tin quốc tế năm 2011 còn đi thi ACM ICPC WF năm 13 16 nữa mà =)) Vừa trâu vừa nhiều kinh nghiệm
 
Mình nghĩ là sẽ có rejudge. Cho testcase một dãy giảm 10^5 phần tử là những solution time complexity O(n^2) sẽ bị TLE thôi.
Nhưng mình nghĩ phải cho một dãy 2* 10^5 phần tử thì mới chắc ăn quét hết solution O(n^2).
Missing Test Case - 3072. Distribute Elements Into Two Arrays II · Issue #20947 · LeetCode-Feedback/LeetCode-Feedback (https://github.com/LeetCode-Feedback/LeetCode-Feedback/issues/20947#issuecomment-1976890913)
Có một leetcoder gửi testcase lên để quét solution Time Complexity: O(n^2) mà bị từ chối.
 
Kì ta, có thể tụi leetcode nó add testcases để rejudge rồi. Để mai chờ xem kết quả evaluation như nào.
 
Dạo này thất nghiệp có vẻ đông vl haha. Contest tụi Leetcode khoảng 1 năm trước đây chỉ tầm 22k tham gia, nay đã lên 30k thằng tham gia rồi.
Ngày xưa q3 chỉ tầm 2 3k accepted thôi mà đợt gần đây toàn tăng lên 4 5k accepted.
 
Trạng thái
Không mở để trả lời thêm.

Thống kê chủ đề

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