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.
nhầm, em đếm lại thì 6 dòng bác :shame:
xin idea di tim nghi k ra roi
ZJqL4rW.png
 
Câu cuối chính ra dễ mà sao cx ko nhiều người làm đc nhỉ
Python:
class Solution:
    def maxSelectedElements(self, nums: List[int]) -> int:
        nums.sort()
        max_consecutive = defaultdict(int)
        for num in nums:
            max_consecutive[num + 1] = max(max_consecutive[num + 1], max_consecutive[num] + 1)
            max_consecutive[num] = max(max_consecutive[num], max_consecutive[num - 1] + 1)
        return max(max_consecutive.values())
xin idea di tim nghi k ra roi
ZJqL4rW.png
 
Đcm bài 4 huhu, t biết ngay mà :ah: cơ hội vàng lên rank 3 số mà đm nó ko làm ra sớm :ah:
Submit xong thì thấy 10:02 cmnr :ah:
Lúc đầu đảo lộn mẹ nó 2 vị trí lùm mé :ah:
counts[num] = 1 + counts.get(num - 1, 0)
counts[num + 1] = counts.get(num, 0) + 1

Cay còn hơn ăn ớt

1708186217038.png
 
Câu cuối chính ra dễ mà sao cx ko nhiều người làm đc nhỉ
Python:
class Solution:
    def maxSelectedElements(self, nums: List[int]) -> int:
        nums.sort()
        max_consecutive = defaultdict(int)
        for num in nums:
            max_consecutive[num + 1] = max(max_consecutive[num + 1], max_consecutive[num] + 1)
            max_consecutive[num] = max(max_consecutive[num], max_consecutive[num - 1] + 1)
        return max(max_consecutive.values())
elite :burn_joss_stick:
 
Đcm bài 4 huhu, t biết ngay mà :ah: cơ hội vàng lên rank 3 số mà đm nó ko làm ra sớm :ah:
Submit xong thì thấy 10:02 cmnr :ah:
Lúc đầu đảo lộn mẹ nó 2 vị trí lùm mé :ah:

counts[num] = 1 + counts.get(num - 1, 0)
counts[num + 1] = counts.get(num, 0) + 1
Lúc đầu em cx thế. Mà thôi, sao cay bằng hôm em sắp xong rồi mà nó down server 2 phút cuối :angry:. Xong nó vẫn tính điểm :angry:. Rồi hôm làm xong sớm 4 câu thì nó bảo test thiếu nên không tính :ah:
 
Đcm bài 4 huhu, t biết ngay mà :ah: cơ hội vàng lên rank 3 số mà đm nó ko làm ra sớm :ah:
Submit xong thì thấy 10:02 cmnr :ah:
Lúc đầu đảo lộn mẹ nó 2 vị trí lùm mé :ah:
counts[num] = 1 + counts.get(num - 1, 0)
counts[num + 1] = counts.get(num, 0) + 1

Cay còn hơn ăn ớt

Xem tệp đính kèm 2338255
Thôi, chăm chỉ quay tay, vận may sẽ đến thôi, :beauty: . Bài 4 t làm hơn tiếng cũng k ra đc đây.
 
bài 4 mất nửa tiếng nghĩ ra, hơi bựa chút :D

C++:
class Solution {   
    int getKey(int i, int s) {
        return i*10001 + s;
    }
    
    int dfs(vector<int>& nums, int index, int increased, map<int, int>& dp) {
        if (index == nums.size() - 1) return 1;
        
        int k = getKey(index, increased);
        if (dp.count(k)) return dp[k];
        
        int val = nums[index] + increased;
        
        int ans = 1;
        if (nums[index + 1] == val + 1) {
            ans = max(ans, 1 + dfs(nums, index + 1, 0, dp));
        } else if (nums[index + 1] == val) {
            ans = max(ans, 1 + dfs(nums, index + 1, 1, dp));
        } else if (index + 2 < nums.size()) {
            if (nums[index + 2] == val + 1) {
                ans = max(ans, 1 + dfs(nums, index + 2, 0, dp));
            } else if (nums[index + 2] == val) {
                ans = max(ans, 1 + dfs(nums, index + 2, 1, dp));
            }
        }
        
        return dp[k] = ans;
    }
    
public:
    int maxSelectedElements(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        
        vector<int> nnums;
        nnums.reserve(nums.size());
        
        for (int i = 0; i < nums.size(); ++i) {
            if (i >= 2 && nums[i] == nums[i - 1] && nums[i] == nums[i - 2]) {
                continue;
            }
            nnums.push_back(nums[i]);
        }
        
        map<int, int> dp;
        int n = nnums.size();
        int ans = 0;
        for (int i = n - 1; i >= 0; --i) {
            ans = max(ans, dfs(nnums, i, 0, dp));
            ans = max(ans, dfs(nnums, i, 1, dp));
        }
        
        return ans;
    }
};
 
Lúc đầu em cx thế. Mà thôi, sao cay bằng hôm em sắp xong rồi mà nó down server 2 phút cuối :angry:. Xong nó vẫn tính điểm :angry:. Rồi hôm làm xong sớm 4 câu thì nó bảo test thiếu nên không tính :ah:
Mấy cái bài consecutive này để ý thì độ khó ko cao, để vô tag medium thì anh em chắc giải ra nhiều do nhiều khi nghĩ hard nó phức tạp quá =((
Lần đầu gần bài 4 đến thế cay hơn ăn ớt =(( thôi luyện tiếp tối quẩy tiếp vậy
 
các bác luyện bao lâu mà làm kinh khủng thật, em lần nào cũng làm được mỗi 1 câu
 
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.358
Quay lại
Lên đầu trang