題意:給出乙個包含n個整數的陣列,你需要回答若干詢問。每次詢問兩個整數k和v,輸出從左到右第k個v的下標。
思路:把每個數字所出現的下標儲存在vector中。
1 #include2 #include3 #include4 #include5 #include6 #include7
using
namespace
std;89
const
int maxn = 1000000 + 5;10
11int
n, m;
12 vectors[maxn];
1314
intmain()
1527
intk, v;
28for (int i = 0; i < m; i++)
2934
}35 }
劉汝佳的做法更妙一些。
#include#include#include
#include
#include
#include
using
namespace
std;
intn, m;
map
>a;
intmain()
intk, v;
for (int i = 0; i < m; i++)
}}
一道簡單的題
阿里巴巴的一道面試題 25.給定乙個整數陣列和乙個整數,返回兩個陣列的索引,這兩個索引指向的數字的加和等於指定的整數。需要最優的演算法,分析演算法的空間和時間複雜度。include include using namespace std struct stwoindex 初始化,同時等於0,說明不存...
一道簡單DP題
首先,一看就應該知道這是一道dp題。原因在於其當前結果都依賴於前面計算得到的子結果。區分分治和dp的關鍵條件就在於演算法執行中間階段的計算結果是否依賴於其子問題的結果,若依賴則為dp,否則為分治。dp題的關鍵在於找出狀態轉移方程和初始條件 或者稱為邊界值 找出狀態轉移方程的關鍵又在於找對乙個狀態函式...
一道簡單的演算法題
題目 統計給定數字中,值為1的二進位制位的數量。如果是陣列呢?int getbitcount unsigned int num return count 第一種想法比較簡單,從最後一位開始,比較是否為1,如果為1,就計數器加一。迴圈次數固定,32次。但是這種方法有乙個地方需要注意,那就形參必須為un...