例如:;4和3只出現過一次,請找出出現過一次的數。首先想到的**應該是上乙個提到的遍歷兩次取出沒有找到的相同的數字,**如下:
public static list findonlynum(int array)
if (j == array.length)
if (array[i] == array[j])
} if (j == array.length)
} return list;
}
那麼我們再用上乙個提到的高大上的方法在想想有沒有更好的解決辦法。我們知道運用異或操作得到唯一一次出現的數字,如果我們能將這兩個只出現過一次的數字劃分開,對劃分開的兩個序列行進異或,那麼就可以等到的我們想要找的兩個數。第一步:我們需要找到乙個條件,給這兩個出現過一次的數找出可以區分的條件。相同的數異或等到的結果0,那麼整個序列異或的結果就是這兩個出現過一次的數的異或。
public static integer findonlynum(int array)else
}
完整**如下所示:
/**
* 找出陣列b裡面不成對出現的2個數字
* @param a
* @return
*/public static listfindnum(int b)else
} list.add(result1);
list.add(result2);
return list;
}/**
* 找出陣列b裡面不成對出現的唯一乙個數字
* @param a
* @return
*/public static integer findonlynum(int a)
// 高位在前,低位在後
public static int bytes2int(byte bytes)
return result;
}
資料結構經典演算法彙總
迴圈佇列 除錯成功 include iostream.h class ssqueue ssqueue int insert const int item if isfull int out int getsize int isempty empty retrun 1 int isfull full ...
經典資料結構 Hash演算法
什麼是雜湊表?雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。雜湊表的做法其實很簡單,就是把key通過乙個固定的演算法...
資料結構經典演算法之希爾排序
目錄 希爾排序 一 操作方法 二 排序方法 三 演示 四 c 實現 五 效能分析 希爾排序又稱 縮小增量排序 基本思想 先取乙個小於n的整數d1作為第乙個增量,然後把檔案的全部記錄分成d1個組。所有距離為d1的倍數的記錄放在同個乙個組中,現在各組內進行直接插入排序 然後,取第二個增量d2實質上希爾排...