1. 程式人生 > >找出陣列中重複次數最多的元素

找出陣列中重複次數最多的元素

思路:
最簡單的方法就是定義一個數組b把相同的元素放到對應位置,如果陣列a的元素等於這個下標,那麼這個下標對應的值就加1,最後找出這個陣列中最大值返回下標,這個方法浪費很大空間,不推薦。

新的思路:採用map,定義一個map,初始值預設為0,迴圈遍歷陣列a,把map中key值是a中此時元素的value加1,初始定義一個val假設map[val]最大,最後每次遍歷都和這個值比較,如果大於這個值,那麼val就重新複製為a[i],具體實現為:

#include<iostream>
#include<map>
using namespace std;

int getMax(int
*a,int len,int val); int main() { int b[]={1,5,4,3,4,4,5,4,5,5,6}; cout<<getMax(b,11,0); } int getMax(int *a,int len,int val) { if(len==0) { cout<<"長度為0不合法"<<endl; return -1; } map<int,int> m; for(int i=0;i<len;i++) { m[a[i]]++; if
(m[a[i]]>=m[val]) val=a[i]; } return val; }

最後輸出:5

相關推薦

陣列重複次數的數

方法一:如果相同的數是連續出現 從第一個數開始,與它後面的數比較,如果相同,計算+1,如果不等,計數置為1.同時保持此時的計數次數和此時的元素; #include<stdio.h> in

陣列重複次數元素

思路: 最簡單的方法就是定義一個數組b把相同的元素放到對應位置,如果陣列a的元素等於這個下標,那麼這個下標對應的值就加1,最後找出這個陣列中最大值返回下標,這個方法浪費很大空間,不推薦。 新的思路:採用map,定義一個map,初始值預設為0,迴圈遍歷陣列a,

如何陣列重複次數的數

eg 陣列{1,1,2,2,3,4,4,4,4,5,5,5,6,6} 元素1出現的次數為2, 元素2出現的次數為2,元素3出現的次數為1,元素4出現的次數為4,元素5出現的次數為3,元素6出現的次數

問題8:如何陣列重複次數的數?

一種方法是以空間換時間,可以定義一個數組 int count[MAX],並將其陣列元素都初始化為0,然後執行for(int i=0; i<100; i++)   count[A[i]]++操作,在count中找最大的數,即為重複次數最多的數。       程式碼如下:

陣列出現次數的數字

#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or

陣列出現次數的那個數——主元素問題

 方法一:以空間換時間,可以定義一個計數陣列int count[100],用來對陣列中數字出現的次數進行計數(只能針對陣列中數字的範圍1~1000),count陣列中最大的元素對應的下標,即為出現次數最多的那個數。程式碼如下: #include <iostream&g

整型陣列重複次數元素

#include <iostream> #include <vector> #include <algorithm> #include <map> using namespace std; struct number {

給定一個只包含正整數的非空陣列,返回該陣列重複次數的前N個數字 ,返回的結果按重複次數到少降序排列(N不存在取值非法的情況)

1 """ 2 #給定一個只包含正整數的非空陣列,返回該陣列中重複次數最多的前N個數字 3 #返回的結果按重複次數從多到少降序排列(N不存在取值非法的情況) 4 解題思路: 5 1.設定一個空字典,去儲存列表中的值和值出現的次數 6 2.使用L.count()方法可以統計出L中值出現的次數

演算法練習08 字串出現次數的字元

題目 找出一個字串中出現次數最多的字元 const str = 'asdfaaaa' 最後的返回值是字串'a' 實現 嗯,我略加思考(半個小時左右),給出了一個複雜的方案,一個屎一般的方案 屎一般的方案 我的方案是利用redcue,計算出了每個字串出現的頻次

查詢陣列重複次數的數字

題目: 給定一個大小為n的陣列,該陣列包含數字的範圍在 [0...k-1], k是一個正整數,k < = n。在這個陣列找到重複次數最多的數字。 要求時間複雜度為n,空間複雜度為1,可以使用原陣列。 原理: 遍歷陣列,讓每個元素作為下標的元素加k,最後誰的值最大,則它

python序列出現次數元素之Counter物件

解決此類問題我們將用到collections模組中的Counter類,並直接呼叫Counter類的most_common()方法或得答案。 用下面的例子來講解具體用法: 基本用法 from col

程式設計師面試題目總結--陣列(三)【旋轉陣列小數字、旋轉陣列查詢指定數、兩個排序陣列所有元素中間值、陣列重複次數的數、陣列出現次數超過一半的數】

11、求旋轉陣列的最小數字 題目:輸入一個排好序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 分析:陣列的旋轉:把一個數組最開始的若干個元素搬到陣列的末尾。例如陣列{3, 4, 5, 1, 2}為{1, 2, 3, 4, 5}的一個旋轉,該陣列的最小值為1。這道題最直觀的解

問題6: 字串出現次數的字母及其出現的次數

這好像是華為機試的一道題目,我採用JAVA來完成,用JAVA也可以用其他方法。 我用一個比較簡單的方法,程式碼如下: public class Str{ public static void main(String[] args){ String str =

java實現查詢陣列重複次數的字串

import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class Test1 {     public static void main(String[] args){

JAVAList集合重複次數的資料和次數

import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Ent

陣列陣列重複元素的數

題目描述: 如何找出陣列中重複元素最多的數 思路: 使用Map對映表記錄每一個元素出現的次數,然後判斷次數大小,進而找出重複次數最多的元素。key表示陣列的元素,value表示這個元素在陣列中出現的次數。最後對map進行遍歷。 程式碼: /** * 使用map

如何陣列重複元素的數

package java程式設計師面試筆試寶典; import java.util.Collections; import java.util.HashMap; import java.util.Ma

一個數組重複次數的數

使用map映色表,通過引入map表來記錄每一個元素出現的次數。 bool find_most_frequency_number(int *arr, int size, int &val) { if (a == NULL || size <= 0) r

js 算Array陣列出現次數元素

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//

【C語言】簡單思路一個數組重複次數的數

#include <stdio.h> int main() {     int a[1024];     int b[1024] = {0};                           //初始化每個數出現一次          int i = 0;