freedom.9
Senior Member
Khó nhai thì nhai kĩ đi sếpđù má mấy bài này khó nhai quá sếp, cơm này chưa chín rồi![]()
via theNEXTvoz for iPhone
Khó nhai thì nhai kĩ đi sếpđù má mấy bài này khó nhai quá sếp, cơm này chưa chín rồi![]()
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
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;
}
}
Tác dụng là khỏi phải xử lí edge case đó fence, thường để tính trong range left right =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
index ko dùng thì xóa đi anhJava: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; } }

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;
}
}
// 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
}
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.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ơiPython: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
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ô quá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,
Xem tệp đính kèm 2681484
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ôngtừ 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,
đăng link lên đây cho lẹtạo cái google sheet được không các thím , hôm nay bận ticket quá mà mai lội lại thì vạn vật hóa hư không
í là ngồi lục lại không biết cơm thêm được phát ở trang nào hơi loạn á ca ca , note hết vào 1 file sheet có trễ 1 2 ngày cũng ăn đượcđăng link lên đây cho lẹ![]()
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ái list này thêm bài mới xóa bài cũ dc mà, link vẫn giữ nguyên. leecode lưu giùm rđăng link lên đây cho lẹ![]()
ok thím, sợ người đưa cơm ngại lộ profile thoicái list này thêm bài mới xóa bài cũ dc mà, link vẫn giữ nguyên. leecode lưu giùm r

lỡ thì thôi chứ làm j quan trọng đâu. bác @freedom.9 sức ăn khỏe, dồn 2-3 ngày cơm ăn 1 lần bội thực mất.í là ngồi lục lại không biết cơm thêm được phát ở trang nào hơi loạn á ca ca , note hết vào 1 file sheet có trễ 1 2 ngày cũng ăn được
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
}
}
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
Cơm khê Additive NumberMấ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ơiPython: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
2 bài Medium 1 bài hard cho ae xả stress tập luyện cuối tuần thi thố

bài này giống cái bài fibonaci sequence :v má nó nhiều edge case vãi.Cơm khê Additive Number![]()
Đầu tiên là số 0, sau đó là tràn giá trị int, sau đó đổi qua long, sau đó lại dính số 0bài này giống cái bài fibonaci sequence :v má nó nhiều edge case vãi.
