首页 > 其他分享 >牛客网——数组中出现次数超过一半的数字

牛客网——数组中出现次数超过一半的数字

时间:2023-04-22 14:11:07浏览次数:38  
标签:return 数字 次数 int 牛客 numbers 数组 numbersLen

title: 牛客网——数组中出现次数超过一半的数字

题目描述:

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。

示例:

输入

[1,2,3,2,2,2,5,4,2]

返回值

2

代码如下:

/**
 * 
 * @param numbers int整型一维数组 
 * @param numbersLen int numbers数组长度
 * @return int整型
 */
int MoreThanHalfNum_Solution(int* numbers, int numbersLen ) {
    // write code here
    int i, count=0;
    int majority_number;
    for(i=0; i<numbersLen; ++i)
    {
        if(0 == count){
            majority_number = numbers[i];
        }
        if(majority_number == numbers[i]){
            ++count;
        } else{
            --count;
        }
    }
    
    count = 0;
    for(i=0; i<numbersLen; ++i)
    {
        if(majority_number == numbers[i]){
            ++count;
        }
    }
    if(count > numbersLen/2){
        return majority_number;
    } else{
        return 0;
    }
    
}

标签:return,数字,次数,int,牛客,numbers,数组,numbersLen
From: https://www.cnblogs.com/blue-Suri/p/17342981.html

相关文章

  • 力扣——240.搜索二维数组II(c语言)
    title:力扣——240.搜索二维数组II(c语言)同《剑指offer》04题目描述:编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],......
  • 二维数组
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(void){ intarr[4][3]= { {12,23,43}, {22,43,55}, {45,57,76}, {54,53,79} }; intsum=0; inti,j; for(i=0;i<3;i++) { for(j=0;j<4;j++) {  sum+=ar......
  • c 数组名和指针的区别
    关于c中数组名和指针的区别我写了一下程序进行测试并就自己的理解做了详细的解释,供自己以后复习,大佬批评指正和需要的网友参考学习。环境:gcc(mingw或cygwin)代码:1#include<stdlib.h>2intmain(intargc,charconst*argv[])3{4intarr[10]={23456,3,4,5,6,......
  • 【DP】LeetCode 718. 最长重复子数组
    题目链接718.最长重复子数组思路分析动态规划题目的时候只需要考虑最后一个阶段,因为所有的阶段转化都是相同的,考虑最后一个阶段容易发现规律在数组的动态规划问题中,一般dp[i]都是表示以nums以第i个元素组成(即nums[i-1])的状态;dp[i][j]分别表示以nums1前i个元素(......
  • C 语言数组操作
    -1.初始化: ```cintarr[5]={1,2,3,4,5};//初始化为1,2,3,4,5intarr[5]={0};//初始化为0``` 2.访问: ```cintarr[5]={1,2,3,4,5};inta=arr[0];//获取第一个元素的值``` 3.遍历: ```cintarr[5]={1,2,3,4,5};for(inti......
  • 牛客小白月赛71 补题记录
    AB:略C:可以转化为比较对数,然后直接模拟即可(longdouble128位表示范围\(-1.2\times10^{-4932}~1.2\times10^{4932}\))代码如下:#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;//------------------------intmain(void){ ios::sync_with_stdi......
  • day52 300.最长递增子序列 | 674. 最长连续递增序列 | 718. 最长重复子数组
    给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例1:输入:nums=[10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是[2,3,7,101......
  • 算法学习day01数组part02-209、59、977
    packageLeetCode.arraypart02;/***209.长度最小的子数组*给定一个含有n个正整数的数组和一个正整数target。*找出该数组中满足其和≥target的长度最小的连续子数组[numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0.*......
  • VUe-数组get传递
    vue中get方法如何传递数组参数直接放在对象中传递数组 exportfunctiongetCrApplicationList(data){vartest=['111','222']returnrequest({url:'/applicant/CrApplication/List',method:'get',params:{test}})}  传递的参......
  • vuejs四舍五入、字符串、数组、Set去重
     url如果使用get方式传递数组。只需传入多个同名参数即可eg: https://test.net/do.action?paramA=valArr1&paramA=valArr2&paramsB=valB此时paramA在后台即可使用数组方式接收————————————————   vue使用newSet去重 constarr=newSet()ThisList.forEach......