0
A
回答
4
訣竅是,我們只需要經過一個陣列(例如在x_array),我們可以計算出Ÿ使用P-X = Y。現在我們只需要確保y在y_array中,並且我們知道我們有我們的答案。爲了確保y在y_array中,我們創建一個集合或二叉搜索樹來進行快速查找。
下面是一些Python代碼:
p=13
xs=[1,3,99,9,18]
ys=[10,4,33]
y_set=set(ys)
#y=p-x
results=((x,p-x) for x in xs if x<10 and p-x<5 and p-x in y_set)
print "x=%s,y=%s,p=13" % results.next()
'x=9,y=4,p=13'
0
你試圖做這樣的事情:
void main(void) {
int x[] = {3, 5, 7, 10}
int y[] = {5, 9, 12, 23}
int i=0, j=0;
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
{
if (x[i]<10 && y[j]<5)
{
if(x[i]+y[j]==p)
{
//do something
}
}
}
}
}
+0
否y低於5. :)如果在迭代j之前測試x [i] <10,則可能爲大x和y節省大量時間。 – 2012-02-21 10:29:39
0
最快的算法,我知道會是:
- 讓
m
是最大的您約束和z
項目由m
限制。在你的情況下,m = 10, z = x
。這是因爲隨着m增長,p-m減小。 - 我假設你的物品是通用的。創建地圖和關聯的關鍵
p - z[i].value()
到z[i]
- 取每個項目
obj
於其他列表中(在你的情況y
),看看如果obj.value()
是地圖的關鍵。如果是這樣,節省obj.value()
和map[obj.value()]
使用檢索在固定時間O(1)
地圖的財產,你有運行O(sizeof(x)+sizeof(y))
相關問題
- 1. 其中y列的X滿足標準
- 2. 位置,以滿足特定的標準
- 3. 獲取滿足一定標準的數組項目數
- 4. 選擇,其中每個組的至少一排滿足標準
- 5. SQL選擇滿足另一個表的標準的記錄
- 6. 從MongoDB中選擇滿足N個條件的K個數據
- 7. 需要滿足三個標準的Jquery CSS選擇器
- 8. 滿足一個specefic標準,ORACLE
- 9. 如何在滿足特定標準的行後選擇所有來到下一個行的行?
- 10. 最優化的方式來組合n個大小爲k的特殊組,以滿足特定要求
- 11. 熊貓:選擇行如果一個特定的列滿足一定條件
- 12. 在Prolog中滿足一組目標
- 13. 如果x條目滿足條件,繪製x-y數據python
- 14. jQuery選擇當一個子元素滿足準則
- 15. 創建的滿足給定的標準連續三天組
- 16. 更新代碼庫,以滿足標準
- 17. MySQL標記問題:如何選擇已標記爲X,Y和Z的項目?
- 18. 爲了滿足Y中取X約束
- 19. 應用轉換到組一行行的滿足標準的MySQL
- 20. 選擇一個數組中的特定項目vb
- 21. 如何從android的listview中選擇一個特定的項目?
- 22. 一個項目,以滿足在規定的時間規定的要求
- 23. 確定集合中的所有項目是否滿足已建立的標準
- 24. 從一組元素中選擇一個滿足條件的所有元素
- 25. 沒有一個可以滿足的策略選項例外
- 26. 設計一個循環中的公式爲x和y滿足這些要求
- 27. 分組項目,並從每個組中選擇特定項目與LINQ
- 28. 選擇滿足條件的多個列
- 29. 在一個特定的選項選擇
- 30. 如果至少有一列滿足特定標準,則在SQL Server中選擇一行
總數應爲k或P的算法? – sgowd 2012-02-21 07:02:47
我想這裏有一個更深層的語言問題。你有x個項目,還是從(0到x)的值,y是相同的?項目的數量或其值的總和是否必須是p?你需要總和爲p的對(x + y)還是每個組合(x1 + x2,... + xn + y1,+ y2 + ... + ym)= p? – 2012-02-21 10:25:35