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.
memoize xao chậm vậy cà https://leetcode.com/submissions/detail/804092306/
LTT2cUR.png
LTT2cUR.png
LTT2cUR.png
 
fen giải thích lời giải cái, sao lại có 2 function vậy
window siding thôi fen. Trước t đi pv gặp bài này rồi, :D.
Ý tưởng là kéo thằng nums1 qua trái từ 0 đến len(nums1) phần tử rồi so sánh trực tiếp với nums2, lấy max. Làm tương tự với nums2.
VD:
Input:
nums1 = [1,2,3,2,1]
nums2 = [3,2,1,4,7]

compare nums1[0:] với nums2 -> [1, 2, 3, 2, 1] [3, 2, 1, 4, 7] -> 1
compare nums1[1:] với nums2 -> [2, 3, 2, 1] [3, 2, 1, 4, 7] -> 0
compare nums1[2:] với nums2 -> [3, 2, 1] [3, 2, 1, 4, 7] -> 3
....
 
window siding thôi fen. Trước t đi pv gặp bài này rồi, :D.
Ý tưởng là kéo thằng nums1 qua trái từ 0 đến len(nums1) phần tử rồi so sánh trực tiếp với nums2, lấy max. Làm tương tự với nums2.
VD:
Input:
nums1 = [1,2,3,2,1]
nums2 = [3,2,1,4,7]

compare nums1[0:] với nums2 -> [1, 2, 3, 2, 1] [3, 2, 1, 4, 7] -> 1
compare nums1[1:] với nums2 -> [2, 3, 2, 1] [3, 2, 1, 4, 7] -> 0
compare nums1[2:] với nums2 -> [3, 2, 1] [3, 2, 1, 4, 7] -> 3
....
ừ nhỉ đúng bài đơn giản phải xài cách đơn giản này tự dưng đâu chơi cái dp
LTT2cUR.png
LTT2cUR.png
LTT2cUR.png
 
bọn này sau mỗi tháng lại add thêm test case à, bài hnay em có submission rồi nhưng ấn submit lại thì bị TLE :rolleyes:
Update: Ấn submit phát nữa với code đó lại được rồi
 
bọn này sau mỗi tháng lại add thêm test case à, bài hnay em có submission rồi nhưng ấn submit lại thì bị TLE :rolleyes:
Update: Ấn submit phát nữa với code đó lại được rồi
do tùy máy chấm thôi bác, lúc "giờ cao điểm" thì bài bác bị chấm chậm hơn là bth.
 
Leetcode sao sao ấy nhỉ, submit lần đầu TLE với O(N) hơi sốc, submit lại mới được =((
https://leetcode.com/submissions/detail/804914414/
Python:
class Solution:
    def sumEvenAfterQueries(self, nums: List[int], queries: List[List[int]]) -> List[int]:
        res = sum([i for i in nums if not i%2])
        arr = []
        
        for val, index in queries:
            if nums[index] % 2 == 0:
                if val % 2 == 0:
                    res += val
                else:
                    res -= nums[index]
            else:
                if val % 2 != 0:
                    res += (nums[index] + val)
            nums[index] = nums[index] + val

            arr.append(res)
        
        return arr
 
Leetcode sao sao ấy nhỉ, submit lần đầu TLE với O(N) hơi sốc, submit lại mới được =((
https://leetcode.com/submissions/detail/804914414/
Python:
class Solution:
    def sumEvenAfterQueries(self, nums: List[int], queries: List[List[int]]) -> List[int]:    
        res = sum([i for i in nums if not i%2])

        arr = []
        for val, index in queries:
            new_num = nums[index] + val
            if nums[index] % 2 == 0:
                if val % 2 == 0:
                    res += val
                else:
                    res -= nums[index]
            else:
                if val % 2 != 0:
                    res += (nums[index] + val)
            nums[index] = new_num

            arr.append(res)
     
        return arr
Python mà dài thế?

C++:
class Solution {
public:
    vector<int> sumEvenAfterQueries(vector<int>& nums, vector<vector<int>>& queries) {
        vector<int> res; res.reserve(queries.size());
        int sum = 0;
        for (auto i : nums) sum += i & ((i & 1) - 1);
        for (auto &v : queries) {
            auto &n = nums[v[1]];
            sum -= n & ((n & 1) - 1);
            n += v[0];
            res.emplace_back(sum += n & ((n & 1) - 1));
        }
        return res;
    }
};
 
Python mà dài thế?

C++:
class Solution {
public:
    vector<int> sumEvenAfterQueries(vector<int>& nums, vector<vector<int>>& queries) {
        vector<int> res; res.reserve(queries.size());
        int sum = 0;
        for (auto i : nums) sum += i & ((i & 1) - 1);
        for (auto &v : queries) {
            auto &n = nums[v[1]];
            sum -= n & ((n & 1) - 1);
            n += v[0];
            res.emplace_back(sum += n & ((n & 1) - 1));
        }
        return res;
    }
};
vì python culture là Explicit is better than Implicit bác :too_sad:
 
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