3 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
沒(méi)看明白,要合并發(fā)的話,最后只可能有一個(gè)結(jié)果啊,按樓主的舉例來(lái)說(shuō)
1.1.1.1_223.233.223.1 肯定合含了所有段啊,
如果是這樣的話,比較最首位的最大值和最小值,分別記錄一下不就可以了,但這樣,無(wú)論數(shù)組里面有多少ip段,最后只有一個(gè)結(jié)果啊
既然樓主修改了問(wèn)題,也大概明白了
提供一個(gè)思路,把Ip 轉(zhuǎn)為 int以后就行比較,應(yīng)該會(huì)比較方便。
function ip2int(ip){
var num = 0;
ip = ip.split(".");
num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
num = num >>> 0;
return num;
}

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
用土辦法的話:
ip地址4位,
1.首先分段按第一位分段,第一位作為key值,按key升序。
2.分組里面如果大于兩個(gè),就要取出最大和最小,第一位固定比較大小其實(shí)很容易。比方說(shuō)1.2.3.4和1.3.4.5,每位最多是三位數(shù),你可以補(bǔ)齊成12位數(shù)字,001002003004和001003004005就可以排序出最大和最小了。
3.第一步經(jīng)過(guò)第二步處理后,數(shù)據(jù)里面的段,就只有一個(gè)和兩個(gè)這樣子的類型,按key順序遍歷,處理就好了
- 3 回答
- 0 關(guān)注
- 796 瀏覽
添加回答
舉報(bào)