日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在一个数组中找 差值最大的两个数 差值最小的两个数 推广到 点对

發布時間:2025/5/22 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在一个数组中找 差值最大的两个数 差值最小的两个数 推广到 点对 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先求差值最大的:

1、找出最大值和最小值 然后做差, ?每次比較相鄰的兩個數(比如先0,1 ?然后2,3),然后每次比較記錄下最大和最小的差值,可以比較1.5N次得到結果,和分為奇數偶數位比較一樣的復雜度

2、由于抽屜原來,設最大的值和最小的值為maxV和minV,那么最大差值不會超過delta = (maxV-minV)/(N-1), ?用反證法可以證明,編程之美p171,然后根據delta的值分為N個桶,最大差值顯然不會再桶內,所以找到桶內最大的值和最小的值,即可。o(n)

?

如果是點對,那么 參考 凸包,卡殼算法。。。我還不會。。。http://blog.csdn.net/wangyangkobe/article/details/6081975

?

?

然后是差值最小的“

1、排序然后掃描相鄰的,o(nlogn)

2、把所以值用visit數組標記,visit[a[i]] = 1,然后找到最相鄰的兩個1即可,bit貌似可以優化

?

點對:不能排序是個問題了。。。考慮編程之美p170算法,分治,分為左右兩個部分,兩邊找出最小的,設最小的為mdin,然后再判斷兩個點一個在做一個在右的情況,只考慮分布<2*midn的情況,然后兩個矩形。。。8個點(我怎么感覺是6個呢),然后再按照y排序找,每次找相鄰8個點即可,這一步就是o(n)了,然后總的o(nlogn)

轉載于:https://www.cnblogs.com/juandx/p/4065470.html

總結

以上是生活随笔為你收集整理的在一个数组中找 差值最大的两个数 差值最小的两个数 推广到 点对的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。