亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
樓主: forrestgang
打印 上一主題 下一主題

華為面試題(8分鐘寫出代碼) [復(fù)制鏈接]

論壇徽章:
0
121 [報(bào)告]
發(fā)表于 2006-11-17 16:39 |只看該作者
原我犯了很多數(shù)人一樣的錯(cuò)誤

主觀一定認(rèn)為最大的兩個(gè)數(shù)一定要分開

[ 本帖最后由 lih928 于 2006-11-17 16:46 編輯 ]

論壇徽章:
0
122 [報(bào)告]
發(fā)表于 2006-11-17 17:34 |只看該作者
  1. 原帖由 [i]xmyth[/i] 于 2006-11-14 17:04 發(fā)表
  2. 當(dāng)前數(shù)組a和數(shù)組b的和之差為
  3. A = sum(a) - sum(b)

  4. a的第i個(gè)元素和b的第j個(gè)元素交換后,a和b的和之差為
  5. A' = sum(a) - a[i] + b[j] - (sum(b) - b[j] + a[i])
  6.        = sum(a) - sum(b) - 2 (a[i] - b[j]) ...
復(fù)制代碼

當(dāng)x 在 (0,A)之間時(shí),做這樣的交換才能使得交換后的a和b的和之差變小,x越接近A/2效果越好, 如果找不到在(0,A)之間的x,則當(dāng)前的a和b就是答案。


當(dāng)這樣的X不存在時(shí),并不能結(jié)束算法。還可能存在如下情形,可以得到更小的差值:
例如: A={3, 5, 6, 7, 13, 14}
       B={1, 3, 7, 8, 10, 17}
此時(shí)有,sum(A) - sum(B) = 2 ,并且不存在(0, 2)之間的x值。
但將A中的5和6與B中的3和7同時(shí)交換,得到
       A={3, 3, 7, 7, 13, 14}
       B={1, 5, 6, 8, 10, 17}
此時(shí)有:sum(A) - sum(B) = 0,此時(shí)的數(shù)組才是解。

我覺得這個(gè)算法難在如何有效尋找a(i)]和b[j]上

[ 本帖最后由 tyc611 于 2006-11-17 23:54 編輯 ]

論壇徽章:
0
123 [報(bào)告]
發(fā)表于 2006-11-17 17:38 |只看該作者
>為啥上邊的回復(fù)后部分斜了呢

  1. 知道了,原來是a[i]中的[i]在作祟:em02:
復(fù)制代碼

[ 本帖最后由 tyc611 于 2006-11-17 23:58 編輯 ]

論壇徽章:
0
124 [報(bào)告]
發(fā)表于 2006-11-17 18:19 |只看該作者
建2各數(shù)組,把那些數(shù)從大到小,分別放入數(shù)組就成把.   放的時(shí)候判斷一下就行了.
if (sum(a)>sunm(b))
  a.push_back(num)
else
  b.push_back(num)

論壇徽章:
0
125 [報(bào)告]
發(fā)表于 2006-11-17 19:07 |只看該作者
xmyth 兄從事什么專業(yè)?
能夠快速的把實(shí)際問題模式化,并行成正確的數(shù)學(xué)思維,論證嚴(yán)謹(jǐn).
而且整個(gè)模型具有智能的味道,佩服佩服
令我收益非淺那~~

論壇徽章:
0
126 [報(bào)告]
發(fā)表于 2006-11-17 23:27 |只看該作者

  1. int abs(int n)
  2. {
  3.         return n >= 0 ? n : -n;
  4. }

  5. int sum(int *array, int count)
  6. {
  7.         int sum = 0;
  8.         for (int i = 0; i < count; i++)
  9.                 sum += array[i];
  10.         return sum;
  11. }

  12. void exchange(int *array1, int *array2, int count)
  13. {
  14.         int sum1 = sum(array1, count);
  15.         int sum2 = sum(array2, count);
  16.         if (sum1 == sum2)
  17.                 return;
  18.                
  19.         int diff = abs(sum1 - sum2);
  20.         for (int i = 0; i < count; i++) {
  21.                 for (int j = 0; j < count; j++) {
  22.                         int s1 = sum1 + array2[j] - array1[i];
  23.                         int s2 = sum2 + array1[i] - array2[j];
  24.                         if (abs(s1 - s2) < diff) {
  25.                                 int tmp = array1[i];
  26.                                 array1[i] = array2[j];
  27.                                 array2[j] = tmp;
  28.                                 sum1 = s1;
  29.                                 sum2 = s2;
  30.                                 diff = abs(sum1 - sum2);
  31.                                 if (diff == 0)
  32.                                         return;
  33.                         }
  34.                 }
  35.         }
  36. }
復(fù)制代碼

[ 本帖最后由 svenwang 于 2006-11-17 23:41 編輯 ]

論壇徽章:
0
127 [報(bào)告]
發(fā)表于 2006-11-18 11:09 |只看該作者
先把數(shù)據(jù)放到一個(gè)臨時(shí)數(shù)組中,排序且求和sum;用背包算法,盡量是一個(gè)數(shù)組大小為n的存放的數(shù)字和為sum/2

論壇徽章:
0
128 [報(bào)告]
發(fā)表于 2006-11-18 11:19 |只看該作者
原帖由 slsl8460 于 2006-11-17 19:09 發(fā)表
先把數(shù)據(jù)放到一個(gè)臨時(shí)數(shù)組中,排序且求和sum;用背包算法,盡量是一個(gè)數(shù)組大小為n的存放的數(shù)字和為sum/2


原題說了數(shù)組里面元素的值任意,背包算法的效率線性于最大容積K,這里就是sum/2,如果這個(gè)數(shù)字可以任意,那背包算法也沒什么意義了。

論壇徽章:
0
129 [報(bào)告]
發(fā)表于 2006-11-18 17:53 |只看該作者
關(guān)注....

論壇徽章:
0
130 [報(bào)告]
發(fā)表于 2006-11-18 22:21 |只看該作者
搞一個(gè)數(shù)組C   包含了全部a  b  的數(shù)據(jù)   并排序(再生成C的時(shí)候就排序)
然后在C里面  選1個(gè) 放到A  第2n個(gè)放到B  第2個(gè)放到A  第2n-1個(gè)放到B。。。。。。。

[ 本帖最后由 geba168 于 2006-11-18 22:23 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP