Ketma-ketlik 6 bo'lsa: Mahsulot = -4


Download 17.64 Kb.
Sana24.12.2022
Hajmi17.64 Kb.
#1052483
Bog'liq
klassifikatsiya va regressiya


Shodmonov Javohir
1-masala Butun sonlarning boʻsh boʻlmagan massivi berilgan boʻlsa, barcha mavjud ketma-ketliklardan elementlarning maksimal mahsulotini toping.
Bu erda ketma-ketlik - bu massivda elementlar bir-biridan teng masofada joylashgan har qanday naqsh.
Ketma-ketlik massivdagi joyidan boshlanishi kerak: masalan, 3 ta elementning ketma-ketligi uchinchi elementdan boshlanishi kerak.
Misol:
Massiv berilgan [11, 6, -2, 0, 5, -4, 2]
Agar ketma-ketlik 1 elementdan iborat bo'lsa: Mahsulot = 11 × 6 × (-2) × 0 × 5 × (-4) × 2 = 0.
Ketma-ketlik 2 bo'lsa: Mahsulot = 6 × 0 × (-4) = 0.
Ketma-ketlik 3 ta bo'lsa: Mahsulot = (-2) × (-4) = 8.
Ketma-ketlik 4 ta bo'lsa: Mahsulot = 0
Ketma-ketlik 5 ta bo'lganda: Mahsulot = 5
Ketma-ketlik 6 bo'lsa: Mahsulot = -4.
Ketma-ketlik 7 bo'lsa: Mahsulot = 2.
Shunday qilib, funktsiya 8 ni qaytarishi kerak.

Javob:
function findMaxProduct(arr){
let result = [],
product = 1
for(let i =0; i < arr.length; i++){
for(let j =i; j < arr.length; j += i + 1){
product *= arr[j]
}
result.push(product)
product = 1
}
return Math.max(...result)
}

2-masala
Musbat butun sonni oladigan va uning raqamlarini qayta tartiblash orqali hosil bo'ladigan keyingi kattaroq sonni qaytaradigan funksiya yarating. Masalan:
12 ==> 21
513 ==> 531
2017 ==> 2071
nextBigger(num: 12) // returns 21
nextBigger(num: 513) // returns 531
nextBigger(num: 2017) // returns 2071
Agar raqamlarni kattaroq raqam hosil qilish uchun qayta tartiblash mumkin bo'lmasa, qaytaring -1(yoki nilSwiftda):
9 ==> -1
111 ==> -1
531 ==> -1

nextBigger(num: 9) // chiqishi kerak nil
nextBigger(num: 111) // chiqishi kerak nil
nextBigger(num: 531) // chiqishi kerak nil

Javob:
function nextBigger(n) {
const str = String(n);
const len = str.length;


if (len === 1) return -1;


for (let i = len - 2; i >= 0; i--) {
let index = findNextBiggerDigit(str, i);
if (index > -1) {
let arr = str.split("");
arr[i] = str[index];
arr[index] = str[i];
return parseInt(
arr
.slice(0, i + 1)
.concat(arr.slice(i + 1, arr.length).sort())
.join("")
);
}
}
return -1;
}


function findNextBiggerDigit(str, i) {
if (i === str.length - 2) {
if (str[i] < str[i + 1]) return i + 1;
else return -1;
}


for (let j = +str[i] + 1; j <= 9; j++) {
let index = str.indexOf(j, i + 1);
if (index > -1) return index;
}
}
Download 17.64 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling