2013年计算机联考真题——确定主元

原创 2017年08月11日 19:33:02

这里写图片描述


思路:
首先把主元 确定为A[0],并计数cnt=1。之后从下标为1开始遍历数组,
1.如果A[i] == A[0],cnt++
2.如果不等,则如果cnt>0,cnt–,如果cnt<0,主元设定为A[i],cnt=1。
遍历结束后,再遍历一遍,确定主元的出现的次数,大于n/2,返回主元,否则返回-1


代码如下:

#include <iostream>
using namespace std;

int Majority(int* A, int n)
{
    int majority = A[0];
    int cnt = 1;
    for(int i = 1 ; i < n ; i++){
        if(A[i] == majority){
            cnt++;
        }else{
            if(cnt > 0){
                cnt--;
            }else{
                majority = A[i];
                cnt = 1;
            }
        } 
    }
    cnt = 0;
    for(int i = 0 ; i < n ; i++){
        if(A[i] == majority){
            cnt++;
        }
    }
    if(cnt <= n/2){
        majority = -1;
    }
    return majority;
} 

void Print(int* A,int n)
{
    for(int i = 0 ; i < n ; i++){
        cout<<A[i]<<" ";
    } 
}

int main()
{
    int A[8] = {0,5,5,3,5,7,5,5};
    int B[8] = {0,5,5,3,5,1,5,7};
    int majority = Majority(A,8);
    cout<<"数组A为:"<<endl;
    Print(A,8);
    if(majority == -1){
        cout<<"数组A没有主元"<<endl;
    }else{
        cout<<"数组A主元为:"<<majority<<endl; 
    }

    cout<<"数组B为:"<<endl;
    Print(B,8);
    majority = Majority(B,8);
    if(majority == -1){
        cout<<"数组B没有主元"<<endl;
    }else{
        cout<<"数组B主元为:"<<majority<<endl; 
    }

    return 0;
}

截图为:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。若需转载,请注明http://blog.csdn.net/qq_30091945 举报

相关文章推荐

2013年计算机考研大纲

一、考察目标: 计算机学科专业基础综合考试涵盖数据机构、计算机组成原理、操作系统和计算机网络等学科专业基础课程。要求考生比较系统地掌握上述专业基础课程的基本概念、基本原理和基本方法,能够综合运用...

2010年计算机联考真题——一维数组循环左移

前记从七月份决定开始考研,中间由于听报告,回家复习数学和政治但无论一些时间。自己准备报考山东大学计算机技术的专硕,幸好是数学是考数学二,专业课一直有一门数据结构,这位我的复习节省了很多时间,不想数学一...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

华为2013年 机考 单词统计

题目描述: 输入一段英文文本,用程序统计出现频率最高和最低的两个单词; 英文文本中仅出现这四类字符:空格( )、英文逗号(,)、英文句号(.)、英文大小写字母(a-z、A-Z) 单词之间的分隔符仅考...

2013年计算机考研复习计划

第一阶段:基础复习阶段   以指定参考书为主,兼顾笔记,进行专业课的第一轮复习。看书要以理解为主,不必纠缠于细节,并在不懂的知识点处做上标记。   第一步,选择一本难度适宜、内容全面、与考试相关度...

2013年计算机等级考试修改方案

2011年7月,我中心组织召开了第五届全国计算机等级考试(NCRE) 考委会会议,会议完成NCRE考委会换届选举,并确定了下一步改革和发展的目标。在新的历史时期,NCRE将以保持稳定为前提、以持续健康...

2013年计算机求职总结

版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/13000431 找工作是一个长期准备的过程,突击是没...

2013北邮计算机考研复试上机题解

A. 日期 时间限制 1000 ms 内存限制 65536 KB 题目描述 请你计算出第X年Y月Z日是第X年的第几天。其中,1月1日是第一天,1月2日是第二天,以此类推。 计算时请注意...
  • opm777
  • opm777
  • 2016-03-18 15:42
  • 1918

2007年9全国计算机等级考试二级笔试试卷C++语言程序设计答案及解析

2007年9全国计算机等级考试二级笔试试卷C++语言程序设计答案及解析

2007年4月计算机等级考试C++考试试卷参考答案及解析

2007年4月计算机等级考试C++考试试卷参考答案及解析 该试题网上流传的参考答案错漏比较多,本文已经对其进行修正,并添加了答案解析。 因本人水平有限,如果有错漏的地方还请多多指教! 一、选择题(每小...

2013北邮计算机院上机题

A 日期 Description 请你计算出第X年Y月Z日是第X年的第几天。其中,1月1日是第一天,1月2日是第二天,以此类推。 计算时请注意闰年的影响。对于非整百年,年数能整除4是闰年,否则...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)