当前位置: 首页 > 编程笔记 >

计算满足C ++中给定条件的索引对

段干宜
2023-03-14
本文向大家介绍计算满足C ++中给定条件的索引对,包括了计算满足C ++中给定条件的索引对的使用技巧和注意事项,需要的朋友参考一下

我们给了前N个自然数的排列数组。这里的目标是找到满足以下条件的元素的索引对-

如果数组是Arr [],则i,j是索引,对元素对进行计数,使Arr [i] + Arr [j] = max(Arr [x])使得i <= x <= j。

即,Arr [i]和A [j]之和等于在这两个段之间出现的最大元素。

输入值

Arr[]= { 2,4,1,3,6,5 }

输出结果

满足给定条件的索引对的数量:1

说明-对的总和给出-

2 + 4 = 6,最大为6,但不在2到4之间。

2 + 1 = 3,3不在2和1之间,并且它们之间的最大值为4。

2 + 3 = 5,5不在2到3之间,它们之间的最大值是4。

2 + 6 = 8,8不在2到6之间,最大值在4之间。

相似地

1 + 5 = 6,6在1到5之间,最大值在6之间。

在所有满足条件的对中,只有1对存在。

输入值

Arr[]= { 1,2,5,4,3 }

输出结果

满足给定条件的索引对的数量:2

说明-对的总和给出-

1 + 5 = 6,最大为6,但不在1到5之间。

1 + 4 = 5,5在1到4之间,最大值在5之间。

2 + 3 = 5,5在2到3之间,并且它们之间的最大值为5。

1 + 3 = 4,4在1到3之间,但它们之间的最大值为5。

在所有满足条件的2对中。

以下程序中使用的方法如下

  • 整数数组Arr []存储数字并确定其长度。

  • 函数countPairs(int A [],int n)将一个数组及其大小n作为输入,并返回满足上述条件的对数。

  • 变量计数用于存储此类对的初始值0。

  • 用第一个元素及其在maxindex中的索引初始化为max1,以存储到目前为止找到的最大值的值和索引。

  • 开始使用for循环遍历数组。

  • 如果给定A [j]> = max1,则在嵌套的for循环内,然后用j更新max1及其索引。

  • 对于每对A [i]和A [j],如果sum等于max1且索引maxindex在i和j之间,则满足条件时增加计数。

  • 在结束之后,两个循环都返回存在于count中的结果。

示例

// CPP implementation of the approach
#include<bits/stdc++.h>
using namespace std;
//函数返回计数
//必需的索引对
int countPairs(int A[], int n){
   //要存储所需的计数
   int count = 0;
   int i,j,k;
   int max1=A[0];
   int maxindex=0;
   for ( i = 0; i<n-1; i++){
      for(j=i+1;j<n;j++){
         if(A[j]>=max1){
             max1=A[j];
            maxindex=j;
      }
      if(A[i]+A[j]==max1 && maxindex>=i && maxindex<=j)
         count++;
      }
   }
   //返回子段数
   return count;
}
int main(){
   int Arr[] = {3, 4, 6, 1, 5, 2};
   int size =6;
   cout <<endl<<"满足给定条件的索引对的数量:"
   <<countPairs(Arr,size);
   return 0;
}

输出结果

满足给定条件的索引对的数量: 1
 类似资料:
  • 每个代理都有一个私有布尔变量“Happy?”。如何用[Happy?=True]计算特工人数? 就餐时有没有直接的方法?或者我遍历了所有的代理,然后逐个计算? 更新: 我尝试过全局调度方法:https://repast.github.io/docs/RepastReference/RepastReference.html#schedule-全球的 当我使用ContextBuilder中的@schdu

  • 问题内容: 我的Oracle数据库中具有以下结构: 我想查询只需要检查前连续几天并获取“分配”所在的计数的查询。 我想按日期选择,例如。 示例输出:对于日期,计数为。 新问题。通过Lukas Eder的查询,计数始终为或。但预期是。为什么?! 卢卡斯·埃德(Lukas Eder)的代码 预期的输出是这样的,First_day end不需要最后一天: 问题答案: 此查询将产生每一行的计数: 然后,您

  • 问题内容: 我有以下DataFrame: 如您所见,列用作索引。我想获取该行的序数,在这种情况下应该是。 被测试的列可以是索引列(在这种情况下也可以)或常规列,例如,我可能想找到满足条件的行的索引。 问题答案: 您可以这样使用np.where: 返回的值是一个数组,因为一列中可能有多个具有特定索引或值的行。

  • 问题内容: 我在SQL Server中具有以下数据结构表: 等等。 我需要做的是获取所有连续的日子,其中Allocation = 0,并采用以下形式: 等等。 可以在SQL中执行此操作吗?如果可以,如何执行? 问题答案: 在此答案中,我将假定“ id”字段按递增日期进行排序时,对行进行连续编号,就像示例数据中所做的那样。(如果不存在,则可以创建这样的列)。 这是此处和此处描述的技术示例。 1)在相

  • 我试图从我的数据框中得到不同健康状况的男性和女性的平均年龄。 我可以得到平均年龄单独使用 但是有没有一种更雄辩的方法将它们全部汇总到一个表中,以便平均年龄的输出显示为 非常感谢。