在C程序中,将数组范围查询与频率相同的元素进行翻译

在c程序中,将数组范围查询与频率相同的元素进行翻译

这里我们会看到一个有趣的问题。我们有一个包含 N 个元素的数组。我们必须执行一个查询 Q,如下所示:

Q(start, end) 表示从开始到结束,数字“p”出现的次数恰好是“p”次。 p>

因此,如果数组类似于:{1, 5, 2, 3, 1, 3, 5, 7, 3, 9, 8},并且查询为 –

Q(1 , 8) – 这里 1 出现一次,3 出现 3 次。所以答案是 2

Q(0, 2) – 这里 1 出现一次。所以答案是 1

算法

query(s, e) –

Begin   get the elements and count the frequency of each element ‘e’ into one map   count := count + 1   for each key-value pair p, do      if p.key = p.value, then         count := count + 1      done      return count;End

示例

#include #include using namespace std;int query(int start, int end, int arr[]) {   map freq;   for (int i = start; i <= end; i++) //get element and store frequency      freq[arr[i]]++;   int count = 0;   for (auto x : freq)      if (x.first == x.second) //when the frequencies are same, increase count count++;   return count;}int main() {   int A[] = {1, 5, 2, 3, 1, 3, 5, 7, 3, 9, 8};   int n = sizeof(A) / sizeof(A[0]);   int queries[][3] = {{ 0, 1 },      { 1, 8 },      { 0, 2 },      { 1, 6 },      { 3, 5 },      { 7, 9 }   };   int query_count = sizeof(queries) / sizeof(queries[0]);   for (int i = 0; i < query_count; i++) {      int start = queries[i][0];      int end = queries[i][1];      cout << "Answer for Query " << (i + 1) << " = " << query(start, end, A) << endl;   }}

输出

Answer for Query 1 = 1Answer for Query 2 = 2Answer for Query 3 = 1Answer for Query 4 = 1Answer for Query 5 = 1Answer for Query 6 = 0

以上就是在C程序中,将数组范围查询与频率相同的元素进行翻译的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1444808.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 21:54:18
下一篇 2025年12月13日 10:40:04

相关推荐

  • C++程序查找法向量和迹

    二维数组或矩阵在多个应用中非常有用。矩阵有行和列,并在其中存储数字。在C++中,我们也可以使用多维数组来定义二维矩阵。在本文中,我们将看到如何使用C++计算给定矩阵的范数和迹。 法线是矩阵中所有元素总和的平方根。迹是主对角线中存在的元素的总和。让我们看看算法和 C++ 代码表示。 矩阵法线 $beg…

    2025年12月17日
    000
  • C程序中的阶乘程序

    Given with the number n the task is to calculate the factorial of a number. Factorial of a number is calculated by multiplying the number with its sma…

    2025年12月17日
    000
  • 在C程序中,打印只包含数字0和1的数,使它们的和为N

    给定一个整数n,任务是打印仅由0和1组成的数字,并且它们的总和等于整数n。 仅包含0和1的数字是1、10 , 11 所以我们必须打印所有可以相加得到等于 n 的数字。 就像,我们输入 n = 31 那么答案可以是 10+10+11 或 10+10 +10+1 示例 Input: 31Output:1…

    2025年12月17日
    000
  • 写一个C程序,使用strncmp库函数来比较两个字符串

    strncmp是一个预定义的库函数,存在于string.h文件中,它用于比较两个字符串并显示哪个字符串更大。 strcmp函数(字符串比较) 此函数比较两个字符串。它返回两个字符串中第一个不匹配字符的ASCII差异。 语法 int strcmp (string1, string2); 如果差异等于零…

    2025年12月17日
    000
  • C程序用于判断给定的数字是否为强数

    一个强数是一个数字,其中各位数字的阶乘之和等于该数字本身。 示例 123!= 1!+2!+3!                    =1+2+6 =9 在这个例子中,123不是一个强数,因为各位数字的阶乘之和不等于该数字本身。 145!=1!+4!+5!             =1+24+120…

    2025年12月17日
    000
  • C程序:将文本中的一个单词替换为另一个给定的单词

    在这个程序中,我们给定了三个字符串 txt、oldword 和 newword。我们的任务是创建一个 C 程序,将文本中的一个单词替换为另一个给定的单词。 该程序将搜索文本中所有出现的 oldword,并将其替换为 newword。 让我们举个例子来理解这个问题 – 输入 text = …

    2025年12月17日
    000
  • C程序以显示指向指针之间的关系

    在 C 编程语言中,指向指针的指针或双指针是一个保存另一个指针地址的变量。 声明 下面给出的是指向指针的指针的声明 – datatype ** pointer_name; 例如int **p; 这里,p是一个指向指针的指针。 初始化 ‘&’用于初始化。 例…

    2025年12月17日
    000
  • C++程序删除数组中的元素,不使用库函数

    数组的目的是通过基地址和索引,在多个内存位置上提供对相同类型数据的访问。在各种应用中,数组被用于存储各种原因的数据。数组必须像其他数据结构一样高效地处理添加、删除和更新元素。静态数组和动态数组都包含了许多在C++中处理各种与数组相关的操作的库函数。但在本文中,我们将看到如何在不使用任何库函数的情况下…

    2025年12月17日
    000
  • 十进制转二进制的C程序?

    将整数从十进制 (base-10) 转换为二进制 (base-2)。假设整数的大小为 32 位,需要将数字除以基数。计算机使用它来将整数值更改为计算机的字节。 Input:10Output:1010 说明 如果十进制数是10 10除以2余数为零。因此,0。 将 10 除以 2。新数字为 10/2 =…

    2025年12月17日
    000
  • C程序的朴素模式搜索算法

    C 中的模式匹配– 我们必须查找一个字符串是否存在于另一个字符串中,例如,字符串“algorithm”存在于字符串“naive algorithm”中。如果是找到,然后显示它的位置(即它所在的位置)。我们倾向于创建一个函数,它接收 2 个字符数组,如果匹配则返回位置,否则返回 -1。 I…

    2025年12月17日
    000
  • 检查给定字符串是否是关键字的C程序?

    关键字是在C++库中预定义或保留的单词,具有固定的含义,并用于执行内部操作。C++语言支持超过64个关键字。 每个关键字都以小写字母形式存在,如auto、break、case、const、continue、int等。 C++语言中的32个关键字也可在C语言中使用。 autodoubleintstru…

    2025年12月17日
    000
  • C++程序以给定值找到反正弦

    在三角学中,我们最常使用几个比率:正弦、余弦、正切和其他一些比率。从给定的角度,可以计算这些比率。但是,如果我们有比率值,我们还可以使用反三角函数计算角度。 在本文中,我们将讨论如何通过 C++ 中的反正弦(反正弦)方法从正弦值获取弧度角。 asin() 函数 asin() 方法用于使用反三角正弦函…

    2025年12月17日
    000
  • C程序求第n个偶数

    给定一个数字N,我们需要找到第N个偶数。 偶数是能够被2整除且余数为零的数字。例如2、4、6、8、10等。 如果我们仔细观察偶数列表,我们也可以表示它们为 2*1=2, 2*2=4, 2*3=6, 2*4=8,…2*N。 因此,为了解决这个问题,我们可以简单地将数字N乘以2,这样结果就是…

    2025年12月17日
    000
  • C程序以找到链表的长度

    链接列表使用动态内存分配,即它们相应地增长和收缩。它们被定义为节点的集合。这里,节点有两部分,即数据和链路。数据、链接和链表的表示如下 – 链表的类型 链表有四种类型,如下: – 单链表/ 单链表双/双向链表循环单链表循环双链表 我们使用递归方法求链表长度的逻辑是 &#821…

    2025年12月17日
    000
  • 二分查找的C程序(递归和迭代)

    二分查找算法是一种基于比较和分割机制的算法。二分搜索算法也称为半间隔搜索、对数搜索或二分查找。二分查找算法,在已排序数组中查找目标值的位置。它将目标值与数组的中间元素进行比较。如果该元素等于目标元素,则算法返回找到的元素的索引。如果它们不相等,则搜索算法使用该数组的一半部分,根据值的比较,算法使用前…

    2025年12月17日
    000
  • C++程序来找出至少需要获得多少分才能达到G分的分数

    假设我们有两个数组p和c,每个数组都有D个元素,并且还有另一个数字G。考虑在编程竞赛中,每个问题的分数都基于其难度。问题p[i]的分数为100i。这些p[1] + … + p[D]问题是竞赛中的所有问题。编程网站上的用户有一个数字total_score。用户的total_score是以下…

    2025年12月17日
    000
  • C++程序按值对字典进行排序

    有一些被称为字典的数据结构在各种计算机语言中可用。一种特殊形式的更快的数据结构,它根据键和值存储数据,就是字典。它将键值对保留在那里,以便可以通过键快速搜索某些组件,几乎实时。类似字典的数据结构包含在C++ STL语言标准中。这个数据结构被称为”map“。map生成任何类型的…

    2025年12月17日
    000
  • 十进制转二进制的C语言程序实现

    问题 如何使用C语言中的函数将十进制数转换为二进制数? 解决办法 在在这个程序中,我们在 main() 中调用一个二进制函数。被调用的二进制数转换函数将执行实际的转换。 我们使用的将十进制数转换为二进制数的调用函数的逻辑如下 – while(dno != 0){ rem = dno % …

    2025年12月17日 好文分享
    000
  • C程序检查强数

    给定一个数字’n’,我们需要检查给定的数字是否是强数。 强数是指其所有数字的阶乘之和等于数字’n’。阶乘是指将小于该数字的所有数字(包括该数字)相乘的结果,用!(感叹号)表示。例如:4!= 4x3x2x1 = 24。 因此,要确定一个数字是否是强数,我…

    2025年12月17日
    000
  • C++程序打印8个星星图案

    以金字塔、正方形和菱形等不同格式显示星形图案非常有用常见于基础编程和逻辑构建。我们见过几颗星星学习编程中的循环语句时的数字模式问题。在本文中,我们将在 C++ 中显示由星星组成的数字八 (8)。 在这个程序中,我们取行号 n,它是 8 的上半部分的大小。下半部分将是相同的。八个图案如下所示 带星星的…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信