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á mấy bài này khó nhai quá sếp, cơm này chưa chín rồi :after_boom:
Khó nhai thì nhai kĩ đi sếp
osCpCsi.gif


via theNEXTvoz for iPhone
 
Python:
class Solution:
    def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
        # prefix xor array
        for i in range(1, len(arr)):
            arr[i] ^= arr[i-1]

        res = []
        for q in queries:
            left, right = q[0], q[1]
            # 2^3 = (0^1)^(2^3)^(0^1) = (0^1^2^3)^(0^1)
            value = arr[right] ^ arr[left - 1] if left > 0 else arr[right]
            res.append(value)

        return res

cho em hỏi thím @freedom.9 dùng cái prefix là hash là theo thói quen thôi đúng ko, hay có tác dụng gì ta
 
Java:
class Solution {
    public int[] xorQueries(int[] arr, int[][] queries) {
        int[] ans = new int[queries.length];
        int[] prefix = new int[arr.length];
        prefix[0] = arr[0];
        for (int i = 1; i < arr.length; i++) {
            prefix[i] = prefix[i - 1] ^ arr[i];
        }
        for (int i = 0; i < queries.length; i++) {
            int l = queries[i][0];
            int r = queries[i][1];
            if (l == 0) ans[i] = prefix[r];
            else ans[i] = prefix[r] ^ prefix[l - 1];
        }
        return ans;
    }
}
 
Sửa lần cuối:
Python:
class Solution:
    def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
        # prefix xor array
        for i in range(1, len(arr)):
            arr[i] ^= arr[i-1]

        res = []
        for q in queries:
            left, right = q[0], q[1]
            # 2^3 = (0^1)^(2^3)^(0^1) = (0^1^2^3)^(0^1)
            value = arr[right] ^ arr[left - 1] if left > 0 else arr[right]
            res.append(value)

        return res

cho em hỏi thím @freedom.9 dùng cái prefix là hash là theo thói quen thôi đúng ko, hay có tác dụng gì ta
Tác dụng là khỏi phải xử lí edge case đó fence, thường để tính trong range left right =
pre (right) - pre(left-1)
Mà left thì có thể bằng 0 nên place holder cái giá trị -1 cho khỏi phải xử lí if else edgecases

Mà sẽ chậm hơn xài array tí ko đáng kể, xài array thì ko placeholder đc
 
Java:
class Solution {
    public int[] xorQueries(int[] arr, int[][] queries) {
        int[] ans = new int[queries.length];
        int[] prefix = new int[arr.length];
        int index = 0;
        prefix[0] = arr[0];
        for (int i = 1; i < arr.length; i++) {
            prefix[i] = prefix[i - 1] ^ arr[i];
        }
        for (int i = 0; i < queries.length; i++) {
            int l = queries[i][0];
            int r = queries[i][1];
            if (l == 0) ans[i] = prefix[r];
            else ans[i] = prefix[r] ^ prefix[l - 1];
        }
        return ans;
    }
}
index ko dùng thì xóa đi anh :nosebleed:
 
Java:
class Solution {
    public int[] xorQueries(int[] arr, int[][] queries) {
        int len = queries.length;
        int[] prefixXor = new int[arr.length+1];
        for(int i = 1; i<= arr.length;i++){
            prefixXor[i] = prefixXor[i-1]^arr[i-1];
        }
        int[] ans = new int[len];
        for(int i = 0; i<len;i++){
            int j = queries[i][0];
            int k = queries[i][1];
            ans[i] = prefixXor[k+1]^prefixXor[j];
        }   
        return ans;
    }
}
 
Mã:
// a ^ b = x ~ x ^ a = b ~ x^b = a
func xorQueries(arr []int, queries [][]int) []int {
    xorArr := make([]int, len(arr)+1)
    xorArr[0] = 0
    for i:=1;i<len(xorArr);i++{
        xorArr[i] = xorArr[i-1] ^ arr[i-1]
    }
    ans := make([]int, len(queries))
    for i:=0;i<len(queries);i++{
        ans[i] = xorArr[queries[i][1]+1] ^ xorArr[queries[i][0]]
    }
    return ans
}
 
Python:
class Solution:
    def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
        prefix = {-1: 0}
        n = len(arr)
        for i in range(n):
            prefix[i] = arr[i]^prefix[i - 1]

        ans = []
        for left, right in queries:
            ans.append(prefix[right]^prefix[left - 1])

        return ans
Mấy nay bài dễ quá, nay cuối tuần chuẩn bị 3 bài cùng 1 topic cho các fence vui chơi
2 bài Medium 1 bài hard cho ae xả stress tập luyện cuối tuần thi thố
từ nay cơm thêm bỏ vào list này đi bác, đỡ phải pin, cơm ăn không hết mỗi ngày thì bỏ thôi, sang hôm sau nấu nồi khác.
ae muốn giữ thì vào avatar leetcode ->my lists rồi lưu lại như này là dc,
1726207480920.png
 
từ nay cơm thêm bỏ vào list này đi bác, đỡ phải pin, cơm ăn không hết mỗi ngày thì bỏ thôi, sang hôm sau nấu nồi khác.
ae muốn giữ thì vào avatar leetcode ->my lists rồi lưu lại như này là dc,
tạo cái google sheet được không các thím + note link đến # post , hôm nay bận ticket quá mà mai lội lại thì vạn vật hóa hư không
 
C-like:
impl Solution {
    pub fn xor_queries(arr: Vec<i32>, queries: Vec<Vec<i32>>) -> Vec<i32> {
        let (m, n) = (arr.len(), queries.len());

        let (mut prefix, mut result) = (vec![0; m], vec![0; n]);

        prefix[0] = arr[0];

        for i in 1..m {
            prefix[i] = arr[i] ^ prefix[i - 1];
        }

        for j in 0..n {
            let (l, r) = (queries[j][0] as usize, queries[j][1] as usize);

            result[j] = prefix[r] ^ prefix[l] ^ arr[l];
        }

        result
    }
}
 
Mã:
class Solution:
    def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
        prefix = [0]
        for r in arr:
            prefix.append(prefix[-1] ^ r)
        
        ans = []
        for x , y in queries:
            ans.append(prefix[x] ^ prefix[y + 1])
        
        return ans
ghét mấy bài BIT vl pv hỏi chắc xin về quá
yBBewst.png
 
Python:
class Solution:
    def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
        prefix = {-1: 0}
        n = len(arr)
        for i in range(n):
            prefix[i] = arr[i]^prefix[i - 1]

        ans = []
        for left, right in queries:
            ans.append(prefix[right]^prefix[left - 1])

        return ans
Mấy nay bài dễ quá, nay cuối tuần chuẩn bị 3 bài cùng 1 topic cho các fence vui chơi
2 bài Medium 1 bài hard cho ae xả stress tập luyện cuối tuần thi thố
Cơm khê Additive Number :(
 

Tệp đính kèm

  • Cơm khê.png
    Cơm khê.png
    111,6 KB · Lượt xem: 38
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.659
Quay lại
Lên đầu trang