輸入:10個整數,如 9 9 0 7 8 6 5 7 3 9
輸出:統計每個數字出現的次數,並按數字的大小排序
0:13:1
5:16:1
7:28:1
9:3一、c++版本
#include #include1. 用map事半功倍using
namespace
std;
intmain()
map::iterator m_iter;
for (m_iter = m.begin(); m_iter != m.end(); m_iter++)
return0;
}
2. map中自動按key值公升序排序
輸出:
二、c版本(忽略cin,cout)
不如c++版本用map簡潔,有點繞
#include //執行結果:#include
using
namespace
std;
struct
mymap;
intmain()
//k相當於依次存到m裡時的結尾位置
int k = 0
;
//遍歷輸入的每個數字
for (int i = 0; i < 10; i++)
else
}if (flag == 0
) }
}//對結果排序
for (int i = 0; i < 10; i++)}}
//輸出結果
for (int i = 0; i < 10; i++)
return0;
}
(完)
經典面試題 統計陣列
題目 給定陣列a,大小為n,陣列元素為1到n的數字,不過有的數字出現了多次,有的數字沒有出現。請給出演算法和程式,統計哪些數字沒有出現,哪些數字出現了多少次。能夠在o n 的時間複雜度,o 1 的空間複雜度要求下完成麼?分析 我們知道原陣列是沒有排序的。如果排序了,很簡單的。o 1 的空間含義,可以...
經典面試題 統計陣列
題目 給定陣列a,大小為n,陣列元素為1到n的數字,不過有的數字出現了多次,有的數字沒有出現。請給出演算法和程式,統計哪些數字沒有出現,哪些數字出現了多少次。能夠在o n 的時間複雜度,o 1 的空間複雜度要求下完成麼?分析 我們知道原陣列是沒有排序的。如果排序了,很簡單的。o 1 的空間含義,可以...
面試題之陣列統計
題目 給定陣列a,大小為n,陣列元素為0到n 1的數字,不過有的數字出現了多次,有的數字沒有出現。請給出演算法和程式,統計哪些數字沒有出現,哪些數字出現了多少次。要求在o n 的時間複雜度,o 1 的空間複雜度下完成。解法一 直接用兩層遍歷,o n 2 的時間複雜度,o 1 的空間複雜度 inclu...