1552.兩球之間的磁力-快速排序+二分查找-創(chuàng)新互聯(lián)

在代號為 C-137 的地球上,Rick 發(fā)現(xiàn)如果他將兩個球放在他新發(fā)明的籃子里,它們之間會形成特殊形式的磁力。Rick 有 n 個空的籃子,第 i 個籃子的位置在 position[i] ,Morty 想把 m 個球放到這些籃子里,使得任意兩球間 最小磁力 大。

專注于為中小企業(yè)提供成都網(wǎng)站設計、成都網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)宿松免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。

已知兩個球如果分別位于 x 和 y ,那么它們之間的磁力為 |x - y| 。

給你一個整數(shù)數(shù)組 position 和一個整數(shù) m ,請你返回大化的最小磁力。

示例 1:
在這里插入圖片描述

輸入:position = [1,2,3,4,7], m = 3
輸出:3
解釋:將 3 個球分別放入位于 1,4 和 7 的三個籃子,兩球間的磁力分別為 [3, 3, 6]。最小磁力為 3 。我們沒辦法讓最小磁力大于 3 。

示例 2:

輸入:position = [5,4,3,2,1,1000000000], m = 2
輸出:999999999
解釋:我們使用位于 1 和 1000000000 的籃子時最小磁力大。

這個題目也是非常幫哈,對于這個題目,一開始的時候,博主想的時快速排序+動態(tài)規(guī)劃,事實上,博主寫動態(tài)規(guī)劃寫到一半的時候,突然就意識到,動態(tài)規(guī)劃時間復雜度不能通過,所以想到了二分查找,這個算法思路很棒,感興趣的學習一下,解題代碼如下:

void quick(int *a,int low,int high){if(lowint l=low,h=high,p=a[low];
        while(lowwhile(low=p){high--;

            }
            a[low]=a[high];
            while(lowlow++;
            }
            a[high]=a[low];
        }
        a[low]=p;
        quick(a,l,low-1);
        quick(a,low+1,h);
    }
}


bool  judge(int threshold,int* position, int positionSize, int m){int count=1;
    int pre_index=0;
    for(int i=1;iif(position[i]-position[pre_index]>=threshold){count++;
            pre_index=i;

        }
         if(count>=m){return true;
    }

    }
   return false;
}

int maxDistance(int* position, int positionSize, int m){quick(position,0,positionSize-1);
    int min=1,max=position[positionSize-1];
    while(min<=max){int mid=(max+min)/2;
        if(judge(mid,position,positionSize,m)){min=mid+1;
        }
        else{max=mid-1;
        }
    }
    return min-1;
   



}







你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當前題目:1552.兩球之間的磁力-快速排序+二分查找-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://bm7419.com/article26/dihccg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化小程序開發(fā)、外貿(mào)網(wǎng)站建設動態(tài)網(wǎng)站云服務器、自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營