hash的簡單使用《找數字》

2021-07-25 07:52:04 字數 1014 閱讀 9075

thinking:1、用乙個陣列儲存出現過的數字,剛開下下標為1(可以思考為什麼下標剛開始不能為0)。

2、相同數對乙個數取mod的值是固定的,通過這麼mod出來的值作為關鍵字去查詢是否存在。

如先插入6 15 20 15,6 mod 7= 6,然後通過6查詢之前是否有mod 後結果是 6 的數,沒有,則把其下標也就是1 作為 head[6] 

然後插入15 通過 15 mod 7 = 6 ,然後通過6查詢之前是否有mod 後結果是 6 的 數,存在,則u為其下標,判斷這兩個同mod 7 結果為6的數是否相等,

如果不想等,u=next[u],也就是找前乙個mod 7 結果為6的數來判新加入的數是否與之前的數重複,此時u=next[u]的結果為0,則不存在,添入,

把下標為2作為head[6]。

然後到插入20  20 mod 7 =6 ,然後通過找到 head[6] 的下標也就是 2 然後判斷這兩個數是否相等,然後不想等找next[6]也就是15 判斷仍然不想等,則又下乙個u=next[u],

20 不等於6 則把20插入,然後到15 15 mod 7 = 6  u=head[6]  判斷15不等於20 則找下乙個 u=next[u] , 此時15=15 返回值為0,也就是不能新增。

#include using namespace std;

int head[500];

int next[500];

int st[500];

int aa;

int insert(int s)

next[s]=head[h];
head[h]=s;
return 1;

} int main()else

}}

開始下標不能為0的原因是,如果為0了,下乙個與其相同的值找到的下標是0,則不經過while迴圈直接插入

思考為什麼next[s]=head[u] 而不是next[s]=u;

使用Hash直接登入Windows 簡單分析

由於msf用到exploit windows smb p ec模組,所以猜想和pstool裡面的p ec.exe應該有些許聯絡 檢視說明,p ec.exe可以進行遠端連線得到乙個互動式cmdshell,c documents and settings administrator 桌p ec.exe ...

hash 雜湊的簡單入門

演算法競賽中的雜湊是往往是種種概率 玄學但是又賊雞兒快方便的神奇演算法 本質是通過對目標資料建立唯一對映進行縮小資料規模的權值判斷,常常可以亂搞一些題目 對迴圈陣列的hash 解題思路 對每個六元組求最小表示,然後用乘積與和對應的雙hash對映入乙個鍊錶 再判斷即可 字串雜湊 子串hash模板題 最...

hash表的使用

事實上不管使用陣列還是鍊錶儲存資料都會存在較大缺陷,當你使用陣列時,難於刪除和新增資料 當你使用鍊錶時難於查詢資料 因此hash表綜合了兩者的優缺點,使的查詢和新增等操作既不至於複雜也不至於簡單。因此hash表的原理可以是陣列中存鍊錶,鍊錶上存資料 簡單的建立方式如下 public class hn...