thảo luận Leetcode mỗi ngày

  • Người tạo chủ đề Người tạo chủ đề _Gia_Cat_Luong_
  • Ngày bắt đầu Ngày bắt đầu
Trạng thái
Không mở để trả lời thêm.
Solution On vãi thật :sweat:
Bài này phải medium chứ Ez gì ko biết
via theNEXTvoz for iPhone

Easy là accept được cái constraint nó cho thôi. Cách đơn giản là pass mà.
zFNuZTA.png
 
Java:
class Solution {
    fun repeatedSubstringPattern(s: String): Boolean {
        fun checkRepeated(length: Int): Boolean {
            if (s.length % length != 0) return false
            val n = s.length / length
            val origin = s.substring(0, length)
            for (i in 1 until n) {
                val index = i * length
                if (s.substring(index, index + length) != origin) return false
            }
            return true
        }
        for (i in 1..(s.length / 2)) {
            if (s[i] == s[0] && checkRepeated(i)) return true
        }
        return false
    }
}
 
Mem mới tham gia. Code ngắn nhưng Memory không được tốt lắm
1.png

Python:
class Solution:
    def repeatedSubstringPattern(self, s: str) -> bool:
        len_s = len(s)

        for i in range(1, len_s):
            if s[0] == s[i]:
                subString = s[0:i]
                if subString * (len_s // i) == s:
                    return True
       
        return False
 
đang mắc chỗ đếm số ấy bác chứ dài nhất thì dễ rồi bác:burn_joss_stick:

Mình nghĩ là ở từng độ dài của longest isq đó phải lưu một list các giá trị có thể kèm index, có thể binary search trên đó lúc trace back để tính số khả năng.
 
đang mắc chỗ đếm số ấy bác chứ dài nhất thì dễ rồi bác:burn_joss_stick:
anh có thể dùng segment tree, em nghĩ vẫn là O(nlogn). Cụ thể em nghĩ như sau:
  • mx[a] sẽ lưu độ dài của LIS kết thúc tại a
    [*]ta cập nhật kết quả bằng cách update mx[a] = max(mx[a], max(mx[0],mx[1],...,mx[a-1]) + 1)
    [*]Như trên mới chỉ là cách để tìm LIS
    [*]ta sẽ lưu thêm một biến phụ là way[x] để đánh dấu số cách kết thúc LIS tại một điểm x nào đó với độ dài mx[x] để tìm số LIS
    [*]ta có công thức way[x] = sum of (way[y]) với y là các giá trị thỏa mãn mx[x] = mx[y] + 1

Em không có trang nào để submit thử. Leetcode tự nhiên bắt unlock premium mới cho :too_sad:
 
anh có thể dùng segment tree, em nghĩ vẫn là O(nlogn). Cụ thể em nghĩ như sau:
  • mx[a] sẽ lưu độ dài của LIS kết thúc tại a
    [*]ta cập nhật kết quả bằng cách update mx[a] = max(mx[a], max(mx[0],mx[1],...,mx[a-1]) + 1)
    [*]Như trên mới chỉ là cách để tìm LIS
    [*]ta sẽ lưu thêm một biến phụ là way[x] để đánh dấu số cách kết thúc LIS tại một điểm x nào đó với độ dài mx[x] để tìm số LIS
    [*]ta có công thức way[x] = sum of (way[y]) với y là các giá trị thỏa mãn mx[x] = mx[y] + 1

Em không có trang nào để submit thử. Leetcode tự nhiên bắt unlock premium mới cho :too_sad:

Lâu lắm không làm quên cả segment tree rồi, bữa nào phải implement lại. :(
Bài này mình có 1 hướng implement là làm như bình thường nhưng đính kèm 1 list các possible value vào từng position trong dãy tối ưu (giống kiểu hash) chứ không replace luôn như cách tìm bình thường. Cần binary search 2 lần để vừa update dãy vừa tính số lượng. Không rõ có chạy đúng không.
 
anh có thể dùng segment tree, em nghĩ vẫn là O(nlogn). Cụ thể em nghĩ như sau:
  • mx[a] sẽ lưu độ dài của LIS kết thúc tại a
    [*]ta cập nhật kết quả bằng cách update mx[a] = max(mx[a], max(mx[0],mx[1],...,mx[a-1]) + 1)
    [*]Như trên mới chỉ là cách để tìm LIS
    [*]ta sẽ lưu thêm một biến phụ là way[x] để đánh dấu số cách kết thúc LIS tại một điểm x nào đó với độ dài mx[x] để tìm số LIS
    [*]ta có công thức way[x] = sum of (way[y]) với y là các giá trị thỏa mãn mx[x] = mx[y] + 1

Em không có trang nào để submit thử. Leetcode tự nhiên bắt unlock premium mới cho :too_sad:
đây bác bài 4
https://hnoj.edu.vn/contest/fenwickeasy
 
Mấy bài match này mệt não thế nhỉ =((


C#:
public class Solution {
    public string ConvertToTitle(int columnNumber) {
        var result = new StringBuilder();
        while(columnNumber != 0)
        {
            columnNumber--;
            result.Insert(0, (char)(columnNumber%26 + 'A'));
            columnNumber = columnNumber/26;
        }

        return result.ToString();
    }
}
 
Sửa lần cuối:
ko làm 1 dòng được là medium ròi
SpGlmnL.png

C++:
    string convertToTitle(int n) {
        string res;
        for (; n > 0; n = (n - 1) / 26) res += (n - 1) % 26 + 'A';
        reverse(begin(res), end(res));
        return res;
    }
 
ko làm 1 dòng được là medium ròi
SpGlmnL.png

C++:
    string convertToTitle(int n) {
        string res;
        for (; n > 0; n = (n - 1) / 26) res += (n - 1) % 26 + 'A';
        reverse(begin(res), end(res));
        return res;
    }

xài reverse là thấy dở rồi
C++:
    string convertToTitle(int c) {
        string res  = "";
        while (c-- > 0) {
            res = char (c %26 + 'A') + res;
            c /= 26;
        }
        return res;
    }
 
1692670120029.png

Sắp lên 300 bài code thiếu nhi, đợt này giải leetcode nhiều quá đang có dấu hiệu tẩu hoả nhập ma. Lên 300 bài chắc phải relax mấy hôm chứ nặng đầu quá các fence =(( Lên 400 bài chắc bắt đầu mua course system design học tiếp.
Gần 3x rồi học hành thấy mệt quá.
 
xài reverse là thấy dở rồi
C++:
    string convertToTitle(int c) {
        string res  = "";
        while (c-- > 0) {
            res = char (c %26 + 'A') + res;
            c /= 26;
        }
        return res;
    }
ơ cái c-- ngon vậy mà ko nghĩ ra
Qz8dGvJ.png


2^31 thì tầm 6-7 chữ đủ cho cái sso vậy viết s=c+s chắc cũng O(1) và ko có cấp phát động, đúng là ko nên rev làm gì
aVgiONl.png


C++:
struct Solution {
    string convertToTitle(int n) {
        for (string res;; n /= 26)
            if (n--) res = static_cast<char>(n % 26 + 'A') + res; else return res;
    }
};
 
Sửa lần cuối:
Lên 400 bài chắc bắt đầu mua course system design học tiếp.
Đọc 2 cuốn sách của Alex Xu chắc đủ r bác với course advanced sys desgign của designguru nếu bác muốn tìm hiểu distributed systems, chứ mình thấy system design video course chỗ nào cũng na ná nhau.
 
Trạng thái
Không mở để trả lời thêm.

Thống kê chủ đề

Ngày tạo
_Gia_Cat_Luong_,
Người trả lời cuối
Vipluckystar,
Trả lời
17.755
Lượt xem
1.212.688
Quay lại
Lên đầu trang