等于所有前面元素之和的元素位置
给定正整数的数组Arr[]N。任务是找到所有元素的位置,这些位置等于前面所有元素的总和。如果不存在这样的元素,打印-1。 例:
输入: Arr[] = {1,2,3,6,3,15,5} 输出: 3 4 6 这里,索引“3”处的元素即 3 等于前面元素(1 + 2)的和。 同样,在索引 4,6 = 1+2+3(所有前面元素的和)。 索引 6 处的元素,即 15 = 1 + 2 + 3 + 6 + 3。 输入: Arr[] = {7,5,17,25} 输出: -1
方法: 在遍历数组Arr【】时,保持一个 sum 变量,该变量存储元素的总和直到I–1。将总和与当前元素 Arr[i] 进行比较。如果相等,将此元素的索引推入答案向量。 以下是上述方法的实施:
C++
// C++ implementation
#include <bits/stdc++.h>
using namespace std;
// function to return valid indexes
vector<int> find_idx(int ar[], int n)
{
// Vector to store the answer
vector<int> answer;
// Initial sum would always
// be first element
int sum = ar[0];
for (int i = 1; i < n; i++) {
// Check if sum till now
// is equal to current element
if (sum == ar[i]) {
answer.push_back(i + 1);
}
// Updating the sum by
// adding the current
// element in each
// iteration.
sum += ar[i];
}
return answer;
}
// Driver code
int main()
{
int ar[] = { 1, 2, 3, 6, 3, 15, 5 };
int n = sizeof(ar) / sizeof(int);
vector<int> ans = find_idx(ar, n);
if (ans.size() != 0) {
for (int i : ans) {
cout << i << " ";
}
}
else {
cout << "-1";
}
cout << endl;
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
// Java implementation of the approach
import java.util.*;
class GFG
{
// function to return valid indexes
static Vector<Integer> find_idx(int ar[], int n)
{
// Vector to store the answer
Vector<Integer> answer = new Vector<Integer>();
// Initial sum would always
// be first element
int sum = ar[0];
for (int i = 1; i < n; i++)
{
// Check if sum till now
// is equal to current element
if (sum == ar[i])
{
answer.add(i + 1);
}
// Updating the sum by adding the
// current element in each iteration.
sum += ar[i];
}
return answer;
}
// Driver code
public static void main(String[] args)
{
int ar[] = { 1, 2, 3, 6, 3, 15, 5 };
int n = ar.length;
Vector<Integer> ans = find_idx(ar, n);
if (ans.size() != 0)
{
for (int i : ans)
{
System.out.print(i + " ");
}
}
else
{
System.out.println("-1");
}
}
}
// This code is contributed by 29AjayKumar
Python 3
# Python3 implementation of the above approach
# function to return valid indexes
def find_idx(ar, n) :
# Vector to store the answer
answer = [];
# Initial sum would always
# be first element
sum = ar[0];
for i in range(1, n) :
# Check if sum till now
# is equal to current element
if (sum == ar[i]) :
answer.append(i + 1);
# Updating the sum by
# adding the current
# element in each
# iteration.
sum += ar[i];
return answer;
# Driver code
if __name__ == "__main__" :
ar = [ 1, 2, 3, 6, 3, 15, 5 ];
n = len(ar);
ans = find_idx(ar, n);
if (len(ans) != 0) :
for i in ans :
print(i, end = " ");
else :
print("-1");
print();
# This code is contributed by AnkitRai01
C
// C# implementation of the approach
using System;
using System.Collections.Generic;
class GFG
{
// function to return valid indexes
static List<int> find_idx(int []ar, int n)
{
// Vector to store the answer
List<int> answer = new List<int>();
// Initial sum would always
// be first element
int sum = ar[0];
for (int i = 1; i < n; i++)
{
// Check if sum till now
// is equal to current element
if (sum == ar[i])
{
answer.Add(i + 1);
}
// Updating the sum by adding the
// current element in each iteration.
sum += ar[i];
}
return answer;
}
// Driver code
public static void Main(String[] args)
{
int []ar = { 1, 2, 3, 6, 3, 15, 5 };
int n = ar.Length;
List<int> ans = find_idx(ar, n);
if (ans.Count != 0)
{
foreach (int i in ans)
{
Console.Write(i + " ");
}
}
else
{
Console.WriteLine("-1");
}
}
}
// This code is contributed by Princi Singh
java 描述语言
<script>
// Javascript implementation
// function to return valid indexes
function find_idx(ar, n) {
// Vector to store the answer
let answer = [];
// Initial sum would always
// be first element
let sum = ar[0];
for (let i = 1; i < n; i++) {
// Check if sum till now
// is equal to current element
if (sum == ar[i]) {
answer.push(i + 1);
}
// Updating the sum by
// adding the current
// element in each
// iteration.
sum += ar[i];
}
return answer;
}
// Driver code
let ar = [1, 2, 3, 6, 3, 15, 5];
let n = ar.length;
let ans = find_idx(ar, n);
if (ans.length != 0) {
for (let i of ans) {
document.write(i + " ");
}
}
else {
document.write("-1");
}
document.write("<br>");
// This code is contributed by gfgking.
</script>
Output:
3 4 6
版权属于:月萌API www.moonapi.com,转载请注明出处