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.
Mé bữa trước @Cố Trường Ca kêu làm cty logistic nay đi pv Quant, fen này xl quá

Screenshot_3-10-2024_94117_www.linkedin.com.jpeg

Phông bạt nick clone được gì đâu thím, người ta quăng cho em test chứ cũng có gì ghê gớm đâu mà em xl chi
Xv0BtTR.png
 
Java:
class Solution {
    public int minSubarray(int[] nums, int p) {
        int n = nums.length;
        long sum =0;
        int res = n;
        for(int num:nums){
            sum+=num;
        }
        int target = (int) (sum%p);
        int[] prefix = new int[n+1];
        prefix[0] = 0;
        HashMap<Integer,Integer> map = new HashMap();
        map.put(0,0);
        for(int i =1 ; i<=n;i++){
            prefix[i] = (prefix[i-1]+ nums[i-1])%p;
            // System.out.print(" " + prefix[i]);
        }
        if(target==0) return 0;
        for(int i =1; i<=n;i++ ){
            if(prefix[i]%p == target) {
                res = Math.min(res,i);
            }
            int e =  (prefix[i]-target+p)%p;
            // System.out.println(i +  ": "+ e);
            if(map.containsKey(e)){
                res =Math.min(i-map.get(e),res);
            }
            map.put(prefix[i], i );

        }
        return res==n?-1:res;
      
    }
}
 
Swift:
class Solution {
    func minSubarray(_ nums: [Int], _ p: Int) -> Int {

        let nums = nums.map { $0%p }
        let sum = nums.reduce(0, +)%p

        guard sum > 0 else {
            return 0
        }

        var result = nums.count
        var curSum = 0
        var mapDict = [0: -1]
        for (index, num) in nums.enumerated() {
            curSum += num
            let curMod = curSum % p
            let findMod = (curMod - sum + p) % p
            if let preIndex = mapDict[findMod] {
                result = min(result, index - preIndex)
            }
            mapDict[curMod] = index
        }
        return result == nums.count ? -1 : result
    }
}
 
Làm contest mãi ko qua nổi 1k4, sinh ra với DNA phế vật đúng là quá khổ. Có lẽ đây là thế hệ cuối cùng, trư sẽ kết thúc vòng lặp bi kịch này. :too_sad:
Java:
class Solution {
    public int minSubarray(int[] nums, int p) {
        int mod = 0;
        HashMap<Integer,Integer> map = new HashMap<>();
        map.put(0,-1);
        int currMod = 0;
        int res = Integer.MAX_VALUE;
        for(int n:nums)
            mod = (mod+n)%p;
       
        if(mod==0)
            return 0;
        for(int i = 0;i<nums.length;i++){
            currMod = (currMod+nums[i])%p;
            int remain = (currMod-mod+p)%p;
            if(map.containsKey(remain))
                res = Math.min(res,i-map.get(remain));
            map.put(currMod,i);
        }
        if(res==nums.length)
            res=-1;
        return res;
    }
}
 
Làm contest mãi ko qua nổi 1k4, sinh ra với DNA phế vật đúng là quá khổ. Có lẽ đây là thế hệ cuối cùng, trư sẽ kết thúc vòng lặp bi kịch này. :too_sad:
Java:
class Solution {
    public int minSubarray(int[] nums, int p) {
        int mod = 0;
        HashMap<Integer,Integer> map = new HashMap<>();
        map.put(0,-1);
        int currMod = 0;
        int res = Integer.MAX_VALUE;
        for(int n:nums)
            mod = (mod+n)%p;
      
        if(mod==0)
            return 0;
        for(int i = 0;i<nums.length;i++){
            currMod = (currMod+nums[i])%p;
            int remain = (currMod-mod+p)%p;
            if(map.containsKey(remain))
                res = Math.min(res,i-map.get(remain));
            map.put(currMod,i);
        }
        if(res==nums.length)
            res=-1;
        return res;
    }
}
kháy @Cố Trường Ca à Đơn?
MHoYqPz.png
 
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.214.641
Quay lại
Lên đầu trang