Дан массив с числами. Проверьте, есть ли в нём два одинаковых числа подряд.
Если есть – выведите ‘да’, а если нет – выведите ‘нет’
Моё решение такое:
var arr = [3, 1, 1, 12];
for (var i = 0; i > arr.length; i++) {
for (var j = i + 1; j > arr.length; j++) {
if (arr[i] === arr[j]) {
alert('yes')
} else {
alert('no')
}
}
Но ничего не выводит alert
. В чём проблема?
Bharatha
5,2561 золотой знак17 серебряных знаков36 бронзовых знаков
задан 6 июн 2018 в 9:09
1
Проблема в том, что ты делаешь вывод для каждого числа в массиве. В случае нахождения подходящей пары надо прекращать проверку. А для неподходящих пар вообще ничего делать не надо.
function check(a) {
for (var q=1; q<a.length; ++q) {
if (a[q] === a[q-1]) {
return true;
}
}
return false;
}
console.log(check([3, 1, 1, 12]) ? "Да" : "Нет");
ответ дан 6 июн 2018 в 9:26
Qwertiy♦Qwertiy
120k24 золотых знака121 серебряный знак291 бронзовый знак
[3, 1, 1, 12].reduce((a, b) => (typeof a === 'number' && typeof b === 'number' && a === b ? console.info('Yes') : null, b), null);
ответ дан 6 июн 2018 в 9:15
3
Можно воспользоваться функцией Array.prototype.some
// Дословно:
// Существует ли элемент(не являющийся первым) равный предыдущему?
const hasSeqEq = arr => arr.some((el, i, arr) => i!=0 && el===arr[i-1]);
console.log(hasSeqEq([5, 1, 5, 2])); // false
console.log(hasSeqEq([5, 1, 5, 2, 2, 7])); // true
Преимущество some
перед reduce
заключается в том, что, если будет найдено совпадение, результат будет получен сразу же, не завершая прохода всего массива.
ES5:
// Дословно:
// Существует ли элемент(не являющийся первым) равный предыдущему?
function hasSeqEq(arr) {
return arr.some(function(el, i, arr) {
return i != 0 && el === arr[i - 1];
});
}
console.log(hasSeqEq([5, 1, 5, 2])); // false
console.log(hasSeqEq([5, 1, 5, 2, 2, 7])); // true
ответ дан 6 июн 2018 в 9:32
vp_arthvp_arth
27.1k2 золотых знака45 серебряных знаков76 бронзовых знаков
11
function f(arr) {
for (let i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) !== arr.lastIndexOf(arr[i])) {
return true
}
}
return false
}
let arr = [1, 2, 3, 4, 5, 6, 4, 8];
console.log(f(arr))
ответ дан 17 ноя 2020 в 18:47
KrovorgenKrovorgen
7684 серебряных знака16 бронзовых знаков
Проблема в том, что вы написали неправильное условие выхода из цикла.
i > arr.length
– возвращает false на первой же проверке и цикл заканчивается не сделав ни одной итерации.
var arr = [3, 1, 1, 12];
for (var i = 0; i < arr.length; i++){
for (var j = i + 1; j < arr.length; j++){
if (arr[i] === arr[j]){
alert('yes')
} else {
alert('no');
}
}
}
ответ дан 6 июн 2018 в 9:12
DarthDarth
13k2 золотых знака25 серебряных знаков56 бронзовых знаков
Given an array of n integers. The task is to print the duplicates in the given array. If there are no duplicates then print -1.
Examples:
Input: {2, 10,10, 100, 2, 10, 11,2,11,2} Output: 2 10 11 Input: {5, 40, 1, 40, 100000, 1, 5, 1} Output: 5 40 1
Note: The duplicate elements can be printed in any order.
Simple Approach: The idea is to use nested loop and for each element check if the element is present in the array more than once or not. If present, then store it in a Hash-map. Otherwise, continue checking other elements.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using
namespace
std;
void
findDuplicates(
int
arr[],
int
len)
{
bool
ifPresent =
false
;
vector<
int
> al;
for
(
int
i = 0; i < len - 1; i++)
{
for
(
int
j = i + 1; j < len; j++)
{
if
(arr[i] == arr[j])
{
auto
it = std::find(al.begin(),
al.end(), arr[i]);
if
(it != al.end())
{
break
;
}
else
{
al.push_back(arr[i]);
ifPresent =
true
;
}
}
}
}
if
(ifPresent ==
true
)
{
cout <<
"["
<< al[0] <<
", "
;
for
(
int
i = 1; i < al.size() - 1; i++)
{
cout << al[i] <<
", "
;
}
cout << al[al.size() - 1] <<
"]"
;
}
else
{
cout <<
"No duplicates present in arrays"
;
}
}
int
main()
{
int
arr[] = { 12, 11, 40, 12,
5, 6, 5, 12, 11 };
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
findDuplicates(arr, n);
return
0;
}
Java
import
java.util.ArrayList;
public
class
GFG {
static
void
findDuplicates(
int
arr[],
int
len)
{
boolean
ifPresent =
false
;
ArrayList<Integer> al =
new
ArrayList<Integer>();
for
(
int
i =
0
; i < len -
1
; i++) {
for
(
int
j = i +
1
; j < len; j++) {
if
(arr[i] == arr[j]) {
if
(al.contains(arr[i])) {
break
;
}
else
{
al.add(arr[i]);
ifPresent =
true
;
}
}
}
}
if
(ifPresent ==
true
) {
System.out.print(al +
" "
);
}
else
{
System.out.print(
"No duplicates present in arrays"
);
}
}
public
static
void
main(String[] args)
{
int
arr[] = {
12
,
11
,
40
,
12
,
5
,
6
,
5
,
12
,
11
};
int
n = arr.length;
findDuplicates(arr, n);
}
}
Python3
def
findDuplicates(arr,
Len
):
ifPresent
=
False
a1
=
[]
for
i
in
range
(
Len
-
1
):
for
j
in
range
(i
+
1
,
Len
):
if
(arr[i]
=
=
arr[j]):
if
arr[i]
in
a1:
break
else
:
a1.append(arr[i])
ifPresent
=
True
if
(ifPresent):
print
(a1, end
=
" "
)
else
:
print
(
"No duplicates present in arrays"
)
arr
=
[
12
,
11
,
40
,
12
,
5
,
6
,
5
,
12
,
11
]
n
=
len
(arr)
findDuplicates(arr, n)
C#
using
System;
using
System.Collections.Generic;
class
GFG{
static
void
findDuplicates(
int
[] arr,
int
len)
{
bool
ifPresent =
false
;
List<
int
> al =
new
List<
int
>();
for
(
int
i = 0; i < len - 1; i++)
{
for
(
int
j = i + 1; j < len; j++)
{
if
(arr[i] == arr[j])
{
if
(al.Contains(arr[i]))
{
break
;
}
else
{
al.Add(arr[i]);
ifPresent =
true
;
}
}
}
}
if
(ifPresent ==
true
)
{
Console.Write(
"["
+ al[0] +
", "
);
for
(
int
i = 1; i < al.Count - 1; i++)
{
Console.Write(al[i] +
", "
);
}
Console.Write(al[al.Count - 1] +
"]"
);
}
else
{
Console.Write(
"No duplicates present in arrays"
);
}
}
static
void
Main()
{
int
[] arr = { 12, 11, 40, 12,
5, 6, 5, 12, 11 };
int
n = arr.Length;
findDuplicates(arr, n);
}
}
Javascript
<script>
function
findDuplicates(arr, len) {
let ifPresent =
false
;
let al =
new
Array();
for
(let i = 0; i < len - 1; i++) {
for
(let j = i + 1; j < len; j++) {
if
(arr[i] == arr[j]) {
if
(al.includes(arr[i])) {
break
;
}
else
{
al.push(arr[i]);
ifPresent =
true
;
}
}
}
}
if
(ifPresent ==
true
) {
document.write(`[${al}]`);
}
else
{
document.write(
"No duplicates present in arrays"
);
}
}
let arr = [12, 11, 40, 12, 5, 6, 5, 12, 11];
let n = arr.length;
findDuplicates(arr, n);
</script>
Time Complexity: O(N2)
Auxiliary Space: O(N)
Efficient Approach: Use unordered_map for hashing. Count frequency of occurrence of each element and the elements with frequency more than 1 is printed. unordered_map is used as range of integers is not known. For Python, Use Dictionary to store number as key and it’s frequency as value. Dictionary can be used as range of integers is not known.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using
namespace
std;
void
printDuplicates(
int
arr[],
int
n)
{
unordered_map<
int
,
int
> freq;
for
(
int
i=0; i<n; i++)
freq[arr[i]]++;
bool
dup =
false
;
unordered_map<
int
,
int
>:: iterator itr;
for
(itr=freq.begin(); itr!=freq.end(); itr++)
{
if
(itr->second > 1)
{
cout << itr->first <<
" "
;
dup =
true
;
}
}
if
(dup ==
false
)
cout <<
"-1"
;
}
int
main()
{
int
arr[] = {12, 11, 40, 12, 5, 6, 5, 12, 11};
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
printDuplicates(arr, n);
return
0;
}
Java
import
java.util.HashMap;
import
java.util.Map;
import
java.util.Map.Entry;
public
class
FindDuplicatedInArray
{
public
static
void
main(String[] args)
{
int
arr[] = {
12
,
11
,
40
,
12
,
5
,
6
,
5
,
12
,
11
};
int
n = arr.length;
printDuplicates(arr, n);
}
private
static
void
printDuplicates(
int
[] arr,
int
n)
{
Map<Integer,Integer> map =
new
HashMap<>();
int
count =
0
;
boolean
dup =
false
;
for
(
int
i =
0
; i < n; i++){
if
(map.containsKey(arr[i])){
count = map.get(arr[i]);
map.put(arr[i], count +
1
);
}
else
{
map.put(arr[i],
1
);
}
}
for
(Entry<Integer,Integer> entry : map.entrySet())
{
if
(entry.getValue() >
1
){
System.out.print(entry.getKey()+
" "
);
dup =
true
;
}
}
if
(!dup){
System.out.println(
"-1"
);
}
}
}
Python3
def
printDuplicates(arr):
dict
=
{}
for
ele
in
arr:
try
:
dict
[ele]
+
=
1
except
:
dict
[ele]
=
1
for
item
in
dict
:
if
(
dict
[item] >
1
):
(item, end
=
" "
)
(
"n"
)
if
__name__
=
=
"__main__"
:
list
=
[
12
,
11
,
40
,
12
,
5
,
6
,
5
,
12
,
11
]
printDuplicates(
list
)
C#
using
System;
using
System.Collections.Generic;
class
GFG
{
static
void
printDuplicates(
int
[] arr,
int
n)
{
Dictionary<
int
,
int
> map =
new
Dictionary<
int
,
int
>();
int
count = 0;
bool
dup =
false
;
for
(
int
i = 0; i < n; i++)
{
if
(map.ContainsKey(arr[i]))
{
count = map[arr[i]];
map[arr[i]]++;
}
else
map.Add(arr[i], 1);
}
foreach
(KeyValuePair<
int
,
int
> entry
in
map)
{
if
(entry.Value > 1)
Console.Write(entry.Key +
" "
);
dup =
true
;
}
if
(!dup)
Console.WriteLine(
"-1"
);
}
public
static
void
Main(String[] args)
{
int
[] arr = { 12, 11, 40, 12,
5, 6, 5, 12, 11 };
int
n = arr.Length;
printDuplicates(arr, n);
}
}
Javascript
<script>
function
printDuplicates(arr, n)
{
var
freq =
new
Map();
for
(let i = 0; i < n; i++)
{
if
(freq.has(arr[i]))
{
freq.set(arr[i], freq.get(arr[i]) + 1);
}
else
{
freq.set(arr[i], 1);
}
}
var
dup =
false
;
for
(let [key, value] of freq)
{
if
(value > 1)
{
document.write(key +
" "
);
dup =
true
;
}
}
if
(dup ==
false
)
document.write(
"-1"
);
}
var
arr = [ 12, 11, 40, 12,
5, 6, 5, 12, 11 ];
var
n = arr.length;
printDuplicates(arr, n);
</script>
Time Complexity: O(N)
Auxiliary Space: O(N)
Another Efficient Approach(Space optimization):
- First we will sort the array for binary search function.
- we will find index at which arr[i] occur first time lower_bound
- Then , we will find index at which arr[i] occur last time upper_bound
- Then check if diff=(last_index-first_index+1)>1
- If diff >1 means it occurs more than once and print
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using
namespace
std;
void
printDuplicates(
int
arr[],
int
n)
{
sort(arr,arr+n);
cout<<
"["
;
for
(
int
i = 0 ; i < n ;i++)
{
int
first_index = lower_bound(arr,arr+n,arr[i])- arr;
int
last_index = upper_bound(arr,arr+n,arr[i])- arr-1;
int
occur_time = last_index-first_index+1;
if
(occur_time > 1 )
{ i=last_index;
cout<<arr[i]<<
", "
; }
} cout<<
"]"
;
}
int
main()
{
int
arr[] = {12, 11, 40, 12, 5, 6, 5, 12, 11};
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
printDuplicates(arr, n);
return
0;
}
Python3
def
printDuplicates(arr, n):
arr.sort()
print
(
"["
, end
=
"")
i
=
0
while
i < n:
first_index
=
arr.index(arr[i])
last_index
=
n
-
arr[::
-
1
].index(arr[i])
-
1
occur_time
=
last_index
-
first_index
+
1
if
occur_time >
1
:
i
=
last_index
print
(arr[i], end
=
", "
)
i
+
=
1
print
(
"]"
)
arr
=
[
12
,
11
,
40
,
12
,
5
,
6
,
5
,
12
,
11
]
n
=
len
(arr)
printDuplicates(arr, n)
Java
import
java.io.*;
import
java.util.*;
class
GFG {
public
static
int
lowerBound(
int
[] arr,
int
target)
{
int
lo =
0
, hi = arr.length -
1
;
int
ans = -
1
;
while
(lo <= hi) {
int
mid = lo + (hi - lo) /
2
;
if
(arr[mid] >= target) {
ans = mid;
hi = mid -
1
;
}
else
{
lo = mid +
1
;
}
}
return
ans;
}
public
static
int
upperBound(
int
[] arr,
int
target)
{
int
lo =
0
, hi = arr.length -
1
;
int
ans = -
1
;
while
(lo <= hi) {
int
mid = lo + (hi - lo) /
2
;
if
(arr[mid] <= target) {
ans = mid;
lo = mid +
1
;
}
else
{
hi = mid -
1
;
}
}
return
ans;
}
static
void
printDuplicates(
int
[] arr,
int
n)
{
Arrays.sort(arr);
System.out.print(
"["
);
for
(
int
i =
0
; i < n; i++) {
int
firstIndex = lowerBound(arr, arr[i]);
int
lastIndex = upperBound(arr, arr[i]);
int
occurTime = lastIndex - firstIndex
+
1
;
if
(occurTime
>
1
) {
i = lastIndex;
System.out.print(arr[i] +
", "
);
}
}
System.out.println(
"]"
);
}
public
static
void
main(String[] args)
{
int
[] arr = {
12
,
11
,
40
,
12
,
5
,
6
,
5
,
12
,
11
};
int
n = arr.length;
printDuplicates(arr, n);
}
}
Javascript
function
printDuplicates(arr, n) {
arr.sort();
console.log(
"["
);
for
(let i = 0; i < n; i++)
{
let first_index = arr.indexOf(arr[i]);
let last_index = arr.lastIndexOf(arr[i]);
let occur_time = last_index - first_index + 1;
if
(occur_time > 1) {
i = last_index;
console.log(arr[i] +
", "
);
}
}
console.log(
"]"
);
}
let arr = [12, 11, 40, 12, 5, 6, 5, 12, 11];
let n = arr.length;
printDuplicates(arr, n);
C#
using
System;
class
MainClass {
static
void
printDuplicates(
int
[] arr,
int
n) {
Array.Sort(arr);
Console.Write(
"["
);
for
(
int
i = 0; i < n; i++) {
int
first_index = Array.IndexOf(arr, arr[i]);
int
last_index = Array.LastIndexOf(arr, arr[i]);
int
occur_time = last_index - first_index + 1;
if
(occur_time > 1) {
i = last_index;
Console.Write(arr[i] +
", "
);
}
}
Console.Write(
"]"
);
}
static
void
Main() {
int
[] arr = {12, 11, 40, 12, 5, 6, 5, 12, 11};
int
n = arr.Length;
printDuplicates(arr, n);
}
}
Time Complexity: O(n*log2n)
Auxiliary Space: O(1)
Related Post :
Print All Distinct Elements of a given integer array
Find duplicates in O(n) time and O(1) extra space | Set 1
Duplicates in an array in O(n) and by using O(1) extra space | Set-2
Print all the duplicates in the input string
This article is contributed by Ayush Jauhari. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Last Updated :
18 Apr, 2023
Like Article
Save Article
#статьи
- 23 янв 2023
-
0
Задача: проверить массив на дубликаты
Решаем задачи, которые дают программистам на собеседованиях в IT-компаниях. Сегодня ищем в массиве повторяющиеся элементы.
Иллюстрация: Polina Vari для Skillbox Media
Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.
Условие. Дан массив целых чисел — nums. Необходимо написать функцию, которая возвращает true, если в этом массиве хотя бы одно число повторяется дважды. Если же все элементы уникальны, функция должна вернуть false.
Ввод: nums = [1,2,3,1] Вывод: true
Ввод: nums = [1,2,3,4] Вывод: false
Ввод: nums = [1,1,1,3,3,4,3,2,4,2] Вывод: true
Решить эту задачу самостоятельно и на разных языках программирования можно на LeetCode. Наше решение взято из телеграм-канала Сергея Cracking code interview.
Решение
При решении подобных задач важно выбрать подходящий тип данных. Здесь мы исходим из такой логики: «повторяется дважды» → значит, ищем дубликаты. Следовательно, выбираем множество (set).
Мы создадим пустое множество и будем обходить весь массив, просто проверяя, находится ли элемент во множестве:
- если он ещё не находится — добавляем его;
- если элемент уже там — значит, мы встретили повторяющийся элемент и просто возвращаем true.
public boolean containsDuplicate(int[] nums) { Set<Integer> set = new HashSet<>(); for (int i : nums) { if (set.contains(i)) { return true; } else { set.add(i); } } return false; }
Результаты
Временная сложность: O(n) — так как в самом плохом случае мы проходимся по всему массиву.
Ёмкостная сложность: O(1) — нам нужно заранее определённое количество места в памяти.
Научитесь: Профессия Java-разработчик
Узнать больше
0 / 0 / 0 Регистрация: 07.12.2009 Сообщений: 4 |
|
1 |
|
Нахождение в массиве двух одинаковых чисел07.12.2009, 19:02. Показов 7177. Ответов 13
Здравствуйте. Застрял на задаче, решил попросить у вас помощи. Суть её в том, что из файла считывается массив целых чисел, в нём находятся все числа, которые встречаются в этом массиве ровно два раза, и эти числа выводятся в другой файл. Задача на С++. Прошу помочь, кто сможет и кто захочет выделить время. Заранее спасибо.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
07.12.2009, 19:02 |
Ответы с готовыми решениями: Нахождение одинаковых чисел в массиве Имеется массив из пяти элементов. Необходимо найти в нем… Поиск двух одинаковых чисел в двумерном массиве среди чисел k,l,r два одинаковых,а в третье отлично от них.Переменной n присвоить значение числа,отличного от двух одинаковых Нахождение одинаковых записей при равенстве двух полей 13 |
Darky Быдлокодер 512 / 298 / 85 Регистрация: 22.11.2009 Сообщений: 892 |
||||
07.12.2009, 19:54 |
2 |
|||
Проверяйте
0 |
4726 / 2547 / 757 Регистрация: 18.08.2009 Сообщений: 4,568 |
|
07.12.2009, 20:26 |
3 |
Darky, for(i=0;i<n-1;i++) // идем с 0 по n – 2 элемент При таком коде условие которые встречаются в этом массиве ровно два раза не выполняется. У тебя вывод сразу же при первом повторе элементов, а дальше есть они или нет ты не проверяешь (вернее – если еще раз встретится элемент (третий или четвертый раз), снова вывод на экран)
0 |
Быдлокодер 512 / 298 / 85 Регистрация: 22.11.2009 Сообщений: 892 |
|
07.12.2009, 21:11 |
4 |
valeriikozlov, Да, условие неверно прочел.
0 |
4726 / 2547 / 757 Регистрация: 18.08.2009 Сообщений: 4,568 |
|
07.12.2009, 21:21 |
5 |
Ну во первых, что бы точно убедится, два раза или больше встречается число, нужно пройтись по массиву до конца. Можно например завести счетчик. Если в конце счетчик равен 2, то число выводим на экран. Но сначала лучше проверить от j=0 до j=i-1, встречалось ли это число уже или нет. Если нет то запускаем наш счетчик со значением 1 в остаток массива с j=i+1 до j<n, увеличивая наш счетчик на 1 каждый раз когда встречается такое же число.
0 |
IT_Exp MCSD: APP BUILDER 8794 / 1073 / 104 Регистрация: 17.06.2006 Сообщений: 12,603 |
||||
07.12.2009, 21:25 |
6 |
|||
Airwind, массив целых чисел, в нём находятся все числа, которые встречаются в этом массиве ровно два раза вот часть кода, которая находит искомые числа и выводит их на экран:
0 |
Быдлокодер 512 / 298 / 85 Регистрация: 22.11.2009 Сообщений: 892 |
|
07.12.2009, 21:26 |
7 |
Товарищу Airwind теперь осталось собрать это все воедино и оформить в код. Я думаю, это задача не самая трудная
0 |
4726 / 2547 / 757 Регистрация: 18.08.2009 Сообщений: 4,568 |
|
07.12.2009, 21:34 |
8 |
Есть одно но. Код Rififi выводит на экран только числа, которые встречаются 2 раза. Но выводит их два раза на экран.
0 |
MCSD: APP BUILDER 8794 / 1073 / 104 Регистрация: 17.06.2006 Сообщений: 12,603 |
|
07.12.2009, 22:22 |
9 |
valeriikozlov, Код Rififi выводит на экран только числа, которые встречаются 2 раза. Но выводит их два раза на экран. Да, верно.
0 |
Андрейка 424 / 228 / 87 Регистрация: 25.03.2009 Сообщений: 744 |
||||
07.12.2009, 22:47 |
10 |
|||
выводит по разу числа которые повторяются 2 раза )
0 |
easybudda Модератор 11757 / 7257 / 1720 Регистрация: 25.07.2009 Сообщений: 13,265 |
||||
08.12.2009, 00:14 |
11 |
|||
из файла считывается массив целых чисел, в нём находятся все числа, которые встречаются в этом массиве ровно два раза, и эти числа выводятся в другой файл. Без массива и на С, но вроде работает
0 |
Airwind 0 / 0 / 0 Регистрация: 07.12.2009 Сообщений: 4 |
||||
08.12.2009, 19:26 [ТС] |
12 |
|||
Э… м… даже не знаю, как сказать…
0 |
valeriikozlov 4726 / 2547 / 757 Регистрация: 18.08.2009 Сообщений: 4,568 |
||||
09.12.2009, 05:24 |
13 |
|||
0 |
Airwind 0 / 0 / 0 Регистрация: 07.12.2009 Сообщений: 4 |
||||
12.12.2009, 20:12 [ТС] |
14 |
|||
Спасибо. Только, если позволите: код несколько неправильный, он не учитывает первую цифру. Вот правильный.
0 |
Есть два массива:
let km = [25, 45, 95, 125, 150, 200, 325, 250, 165, 350]
let cof = [1, 1.5, 1, 1.5, 1.2, 1.5, 1 , 0.5, 1.2, 1.5];
Мне нужно найти одинаковые числа в массиве (cof) и сложить числа другого массива(km) в зависимости какой индекс у одинаковых чисел был в (cof). Например:
В этом варианте правильный ответ 445 (25 + 95 + 325 ), 720(45 + 125 + 200 + 350), 315(150+165)
так как в массиве одинаковые числа стоят на индексах 0, 2, 6 и 1, 3, 5, 9 и 4, 8.
Мой код выглядит так:
let km = [25, 45, 95, 125, 150, 200, 325, 250, 165, 350]
let cof = [1, 1.5, 1, 1.5, 1.2, 1.5, 1 , 0.5, 1.2, 1.5];
let itog = [];
for (let i = 0; i < cof.length; i++) {
for(let k = i + 1; k < cof.length; k++){
if(cof[i] === cof[k]){
itog[i] = km[i] + km[k];
}
}
}
console.log(itog)
Но он записывает только сумму двух одинаковых чисел, как сделать по другому не могу понять.