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.
Đm sao mà nhìn ra greedy bài 3 hay thế các fence =(( nhìn ko ra rules xài heap chết cụ nó mất :ah:
 
FUCKKKK lít cốt :ah::ah::ah::ah:
Screenshot 2024-01-20 at 23.11.58.png
 

Tệp đính kèm

  • Screenshot 2024-01-20 at 23.11.58.png
    Screenshot 2024-01-20 at 23.11.58.png
    213,2 KB · Lượt xem: 63
Tụi leetcode code cái side ngu vật vã :ah: cứ tới contest lag lòi cả đít.
Cache cái đống câu hỏi lại, xong dùng queue mà xử lí mấy submission lần lượt, code cái site đúng ngu :ah:
 
Vẫn chưa hiểu lắm my fence =((
Nếu số bé nhất là chỉ có số lần xuất hiện là 1 thì cứ dùng số đó % mọi số còn lại thì luôn luôn ra số đó. ví dụ [2, 3, 4, 4, 6]. Cứ dùng số 2 % 3, 4, 4, ... thì đều ra 2. cuối cùng còn lại số 2
Bài trick lỏ :D
 
Nếu số bé nhất là chỉ có số lần xuất hiện là 1 thì cứ dùng số đó % mọi số còn lại thì luôn luôn ra số đó. ví dụ [2, 3, 4, 4, 6]. Cứ dùng số 2 % 3, 4, 4, ... thì đều ra 2. cuối cùng còn lại số 2
Bài trick lỏ :D
má, thế mà k nghĩ ra, t làm kiểu sort cái array, xong mỗi lần lấy 1 nửa trái, chia lấy dư cho nửa phải, code gặp conner case mãi k xong, :ah:
 
Nếu số bé nhất là chỉ có số lần xuất hiện là 1 thì cứ dùng số đó % mọi số còn lại thì luôn luôn ra số đó. ví dụ [2, 3, 4, 4, 6]. Cứ dùng số 2 % 3, 4, 4, ... thì đều ra 2. cuối cùng còn lại số 2
Bài trick lỏ :D
Đệt =(( đúng là lanh lợi thì đỡ tay chân mà =((:ah: Hèn gì tụi nó accept nhiều thế
 
Vẫn chưa hiểu lắm my fence =((
Gọi số bé nhất là mn
Case đầu tiên là các số lớn hơn mn đều chia hết cho mn => nếu để các số lớn là i và mn đóng vai trò là j thì sẽ thu được 0 add vào trong list (điều này là không tốt vì 0 không thể được sử dụng lại nữa), nếu để số lớn là j còn mn là i thì ta sẽ triệt tiêu được tất cả các số lớn vì a % b = a (nếu a < b). => đáp án sẽ là cnt(mn) / 2 + cnt(mn) % 2 = (cnt(mn) + 1) / 2
Case thứ 2 thì giữ lại 1 số x % mn != 0
sau đó dùng mn xóa hết các số lớn hơn nó giữ lại x
=> lúc này array có dạng [mn,mn,..,mn,x]
x % mn = r (r < mn) => dùng r để xóa hết mn => còn lại [r,x] dùng r xóa nốt x là xong => ans = 1
 
sao mấy thím nghĩ ra greedy ảo vậy
kEEZvq6.png

Python:
class Solution:
    def minimumArrayLength(self, nums: List[int]) -> int:
        mp = {}
        g = 0
        for num in nums:
            mp[num] = mp.get(num , 0) + 1
            g = gcd(g , num)
            
        tmp = mp.get(g , 0)
        if tmp <= 1: return 1
        return (tmp + 1) // 2
 
Python:
class Solution:
    def minimumArrayLength(self, nums: List[int]) -> int:
        minValue = min(nums)
        count = 0
        for num in nums:
            if num%minValue > 0:
                return 1
            if num == minValue:
                count += 1
        return (count + 1)//2
Đệt mẹ lừa đảo, số nào num%min > 0 thì sẽ tạo ra element nhỏ hơn min và remove hết đám còn lại => kết quả trả về 1 =(( dễ thế mà ko nghĩ ra
 
Chắc mấy fence đó là nhiều nhìn ra cái dạng mod này =(( thấy 4k mấy thằng giải được thì chắc chắn là ko khó, do mình ngu thôi fence =((
e đọc đề cứ đẩy vào heapq xog đẩy và pop ra xog thằng bn bảo dùng gready là xong đúng k nhanh nhạy cứ thích brute force
qrRgf8t.png
 
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.378
Quay lại
Lên đầu trang