loservoz999
Senior Member
Câu hỏi thì cũng chỉ có vậy thôi fenceT vẫn chưa hiểu ý câu hỏi đó lắm, có trường hợp thực tế cụ thể nào hơn k bác
via theNEXTvoz
Câu hỏi thì cũng chỉ có vậy thôi fenceT vẫn chưa hiểu ý câu hỏi đó lắm, có trường hợp thực tế cụ thể nào hơn k bác
via theNEXTvoz
Bắt sự kiện nhảy sang màn b, khi sự kiện đó xảy ra thì tắt timeout màn aHỏi mấy câu mình k trả lời dc. Timeout màn A 30 phút mà sang màn b thì hủy timeout thì làm cách nào, mấy câu trắc nghiệm về quece và stack mình k học nên cũng k trả lời dc. Giải thuật thì phải dùng 2 vòng for 0n2 gà quá
Mình có nghĩ đến cái đó nhưng k biết có sự kiện sang màn. Nó tên là gì fence. Search gg cũng k dcBắt sự kiện nhảy sang màn b, khi sự kiện đó xảy ra thì tắt timeout màn a
Mình có nghĩ đến cái đó nhưng k biết có sự kiện sang màn. Nó tên là gì fence. Search gg cũng k dc
K phải cái fence nói, cái đó ông nào mà k biết.setTimeout nó trả về 1 cái id, muốn tắt đi thì dùng hàm clearTimeout cái id là đc
Sent from Xiaomi M2010J19CG using vozFApp
Nghĩ ra thì bác cứ nói ý tưởng của mình cho bên phỏng vấn là ok, chứ hỏi chi tiết thì chả ai nhớ nổi đâu Người ta hỏi chủ yếu để xem cách mình tư duy giải quyết vấn đề, còn về mặt kỹ thuật thì search google là xong.Mình có nghĩ đến cái đó nhưng k biết có sự kiện sang màn. Nó tên là gì fence. Search gg cũng k dc
Tks fence, để mình sBác thử google VisibilityAPI xem. Mình nhớ tên sự kiện là 'visibilitychange' thì phải.
via theNEXTvoz for iPhone
Mình search như fence nói thì thấy chắc đúng nó r. Tks fenceBác thử google VisibilityAPI xem. Mình nhớ tên sự kiện là 'visibilitychange' thì phải.
via theNEXTvoz for iPhone
Thật sự lúc đó mình cũng định nói thế mà. Phải bắt được cái cơ chế lúc sang màn để clear nó đi chứ mình k biết có sự kiện, nhưng nghĩ là câu trả lời như thế lại giống câu hỏi nên thôiNghĩ ra thì bác cứ nói ý tưởng của mình cho bên phỏng vấn là ok, chứ hỏi chi tiết thì chả ai nhớ nổi đâu Người ta hỏi chủ yếu để xem cách mình tư duy giải quyết vấn đề, còn về mặt kỹ thuật thì search google là xong.
bác nói rõ yêu cầu đề bài đi, là x2 array đầu vào r sắp xếp nhỏ dần hay s bác?Các fence cho hỏi thêm cũng như để các fence khác tham khảo, giải thuật tối ưu bài này là gì. Param la array vd Function([1 2,3]) =[6,3,2]
Tích của các phần tử còn lại trong mảng ban đầu được đưa vào trong một mảng mới. Ví dụ phần tử 1 thì 2x3=6 fencebác nói rõ yêu cầu đề bài đi, là x2 array đầu vào r sắp xếp nhỏ dần hay s bác?
vòng lặp đầu tiên anh tính tích các phần tử là M. vòng thứ 2 duyệt đến phần tử nào thì anh chia cho phần tử đó, độ phức tạp tuyến tính.Tích của các phần tử còn lại trong mảng ban đầu được đưa vào trong một mảng mới. Ví dụ phần tử 1 thì 2x3=6 fence
Vẫn 0n2 à fence, với cả nếu chứa số 0 thì saovòng lặp đầu tiên anh tính tích các phần tử là M. vòng thứ 2 duyệt đến phần tử nào thì anh chia cho phần tử đó, độ phức tạp tuyến tính.
à phải rồi chưa tính đến trường hợp 0, vòng lặp đầu tiên nếu gặp 0 thì bỏ qua, tích vẫn là phần còn lại. À còn trường hợp có nhiều hơn 1 số 0 thì M luôn = 0, đặt thêm 1 biến đếm nếu có 2 số 0 thì M=0 thoát vòng lặp luôn.Vẫn 0n2 à fence, với cả nếu chứa số 0 thì sao
tính tích của cả array r chia cho từng phần của mảng thử xem bácTích của các phần tử còn lại trong mảng ban đầu được đưa vào trong một mảng mới. Ví dụ phần tử 1 thì 2x3=6 fence
Nếu mảng chỉ có một phần tử thì sao fenceà phải rồi chưa tính đến trường hợp 0, vòng lặp đầu tiên nếu gặp 0 thì bỏ qua, tích vẫn là phần còn lại. À còn trường hợp có nhiều hơn 1 số 0 thì M luôn = 0, đặt thêm 1 biến đếm nếu có 2 số 0 thì M=0 thoát vòng lặp luôn.
p/s: 2 vòng lặp độc lập chứ ko phải lồng nhau.
vòng lặp đầu tiên anh đi tính tích các phần tử khác 0 trong mảng, gặp 0 thì bỏ qua.Chỉ có khoảng 5 phút thôi
Số 0 thoát vòng lặp luôn là sao fence, check tn nhỉ, mình hơi gà, rồi nếu mảng chỉ có 1 phần tử thì sao
Bác xem còn cách nào tối ưu hơn kNếu mảng chỉ có một phần tử thì sao fence
const multiArray = (array) => {
let temp = [];
let nZero = 0;
let multi = array.reduce((a, b) => {
return a * b;
});
if (multi === 0) {
for (let i = 0; i < array.length; i++) {
if (array[i] === 0) {
nZero++;
}
}
if (nZero > 1) {
temp = array.map((item => item * 0));
return temp;
}
if (nZero === 1) {
let arrayNoZero = array.filter(item => item !== 0);
let multiNoZero = arrayNoZero.reduce((a, b) => {
return a * b;
});
temp = array.map(item => {
if (item === 0) {
return item = multiNoZero;
} else {
return item = 0;
}
})
return temp;
}
}
temp = array.map(item => multi / item);
return temp;
}
Ban đầu tính tích nên check 0 luôn, chỉ tính tích các số khác 0 thôi. Vì đã có biến nZero rồi thì không cần check multi===0 nữa.Bác xem còn cách nào tối ưu hơn k
JavaScript:const multiArray = (array) => { let temp = []; let nZero = 0; let multi = array.reduce((a, b) => { return a * b; }); if (multi === 0) { for (let i = 0; i < array.length; i++) { if (array[i] === 0) { nZero++; } } if (nZero > 1) { temp = array.map((item => item * 0)); return temp; } if (nZero === 1) { let arrayNoZero = array.filter(item => item !== 0); let multiNoZero = arrayNoZero.reduce((a, b) => { return a * b; }); temp = array.map(item => { if (item === 0) { return item = multiNoZero; } else { return item = 0; } }) return temp; } } temp = array.map(item => multi / item); return temp; }
static int[] ConvertArray(int[] numbers)
{
if (numbers.Length <= 1)
throw new Exception("Array size must be bigger than 1");
int count = 0, M = 1;
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] == 0)
{
count++;
if (count == 2)
break;
}
else
M *= numbers[i];
}
int[] newNumbers = new int[numbers.Length];
if (count == 0)
for (int i = 0; i < numbers.Length; i++)
newNumbers[i] = M / numbers[i];
if (count == 1)
for (int i = 0; i < numbers.Length; i++)
newNumbers[i] = numbers[i] == 0 ? M : 0;
return newNumbers;
}