Построить массив из перестановки

Ввод: nums = [5,0,1,2,3,4] Вывод: [4,5,0,1,2,3] Объяснение: Массив ans строится следующим образом: ans = [nums[nums[0] ]], nums[nums[1]], nums[nums[2]], nums[nums[3]], nums[nums[4]], nums[nums[5]]] = [nums[5], числа [0], числа [1], числа [2], числа [3], числа [4]] = [4,5,0,1,2,3]

Решение: сохраняет nums[i]=nums[nums[i]]

Логика для хранения 2 разных значений в одном индексе

x=a+bn (4 и 5 в массиве размером 7)

4 +5*7=39, 39%7=a, 39/5=b

(Когда ‹n)

JAVA-решение:

int n=числа.длина;

for(int i=0;i‹n;i++){

nums[i]=nums[i]+n*(nums[nums[i]]%n);

}

for(int i=0;i‹n;i++){

числа[i]=числа[i]/n;

}

вернуть числа;

Объединение массива

ЯВА-логика:

int[] ans=new int[nums.length*2];

for(int i=0;i‹nums.length;i++){

ответ [я] = числа [я];

ans[числа.длина+i]=числа[i];

}

вернуть ответ;

Текущая сумма одномерного массива

I/P: [1,2,3,4]

O/P: [1,3,6,10]

Объяснение: [1,1+2,1+2+3,1+2+3+4]

Грубая сила: использование 2 циклов for

JAVA-решение:

int[] результат= новый int[nums.length];

целая температура = 0;

for(int i=0;i‹nums.length;i++){

темп=числа[я]+темп;

результат[я]=темп;

}

вернуть результат;

Богатство самого богатого клиента

Ввод: счета = [[1,5],[7,3],[3,5]] Вывод: 10 Объяснение: 1-й покупатель имеет богатство = 6 2-й покупатель имеет богатство = 10 3-й покупатель имеет богатство = 8 2-й покупатель самый богатый с богатством 10

JAVA-решение:

интервал макссостояние=0;

//2D-массив

for(int i=0;i‹accounts.length;i++){

инт суммаКлиент = 0;

for(int j=0;j‹accounts[i].length;j++){

sumCustomer+=accounts[i][j];

}

если (maxWealth‹sumCustomer){

maxWealth= суммаКлиент;

}}

вернуть максимальное богатство;

Перетасовать массив

Ввод: nums = [2,5,1,3,4,7], n = 3 Вывод: [2,3,5,4,1,7] Объяснение: Поскольку x1=2, x2=5, x3=1 , y1=3, y2=4, y3=7, то ответ будет [2,3,5,4,1,7]

JAVA-решение:

int [] res = новый интервал [n * 2]

for(int i=0;i‹arr.length;i++){

res[i]=i%2==0?num[i/2]:num[n+(i/2)];

}

возврат рез;

Альтернатива:

решение класса {

общественное int [] перетасовать (int [] nums, int n) {

int ans[]=new int[n*2];

for(int i=0;i‹n;i++){

ответ[я+я]=числа[я];

ans[i+i+i]=числа[n+i]; }

возврат ответа;

}

}

Дети с наибольшим количеством конфет

Ввод: конфеты = [2,3,5,1,3], extraCandies = 3

Вывод: [правда, правда, правда, ложь, правда]

Объяснение: Если вы дадите все дополнительные конфеты: - Ребёнку 1, у них будет 2 + 3 = 5 конфет, что является наибольшим количеством конфет среди детей. - Малыш 2, у них будет 3+3=6 конфет, что больше всего у детей. - Малыш 3, у них будет 5+3=8 конфет, что является самым большим среди детей. - Малыш 4, у них будет 1+3=4 конфеты, что не самое большое среди детей. - Малыш 5, у них будет 3+3=6 конфет, что самое большое среди детей.

Солн:

Проверьте дополнительные конфеты, проверьте максимальное значение, если больше, напечатайте true, иначе false

class Solution {
public List‹Boolean› kidsWithCandies(int[] candies, int extraCandies) {
int max = Integer.MIN_VALUE;
for (int candy : candies) {
max = Math.max(max, candy);
}
List‹Boolean› ans = new ArrayList‹›();
for (int i = 0; i ‹ candies.length; i++) {
ans.add((candies[i] + extraCandies) ›= max);
}
return ans;
}
}