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

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

Chinaunix

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

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

論壇徽章:
0
101 [報(bào)告]
發(fā)表于 2006-11-15 15:43 |只看該作者
原帖由 mill888 于 2006-11-13 17:29 發(fā)表
8分鐘就能寫出正確方法的人,建議就不要去華為了,應(yīng)當(dāng)去更好的公司。
招聘中,建議華為公司應(yīng)當(dāng)定好自己的位。


華為一直都“定得好好”的...

華為有限兩次打電話叫我去面試都是催我還債的口氣。真讓人惡心。

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

a的第i個元素和b的第j個元素交換后,a和b的和之差為
A' = sum(a) - a + b[j] - (sum(b) - b[j] + a)
       = sum(a) - sum(b) - 2 (a - b[j]) ...



牛逼。這種從數(shù)學(xué)角度來講述算法的思路非常嚴(yán)謹(jǐn)而且語言直白。受教了。

論壇徽章:
0
103 [報(bào)告]
發(fā)表于 2006-11-15 16:27 |只看該作者
for (i = 0; i < n; i++) {
      for (j = 0; j < i; j++)
            if (a[i] < a[j]) {
                tmp[i] = a[j];
                a[i] = b[j];
                b[j] = tmp[i];
            }
      sa += a[i];
      sb += b[i];
}

equal = sa - sb;

論壇徽章:
0
104 [報(bào)告]
發(fā)表于 2006-11-15 18:19 |只看該作者
原帖由 hawk2012 于 2006-11-15 11:08 發(fā)表
是的, 是這個題目出的有問題,應(yīng)該說是a b數(shù)組和的差的絕對值最小才對,不然我的算法就是最小的。


我說是你的理解有問題,a和b兩個數(shù)之間的差值就一定是a-b?應(yīng)該說它們的差值不要存在負(fù)數(shù)。
就比如說我們之間的年齡差,這是一個正數(shù),地球人都知道

[ 本帖最后由 zwylinux 于 2006-11-15 18:22 編輯 ]

論壇徽章:
0
105 [報(bào)告]
發(fā)表于 2006-11-15 20:14 |只看該作者
上面我有發(fā)表我的算法,但是有些錯誤沒改過來,現(xiàn)在這個是改進(jìn)的,應(yīng)該沒什么問題了
#include<stdio.h>
#define SIZE 3
int
sumb (int m[], int n)
{
  int i;
  int sum = 0;
  for (i = 0; i < n; i++)
    sum += m[ i ];
  return sum;
}

main ()
{
  int min;
  int tmp;
  int i;
  int j;
  int this;
  int a[SIZE] = {
    1, 7, 3
  };
  int b[SIZE] = {
    10, 15, 4
  };

  min = sumb (a, SIZE) - sumb (b, SIZE);
  min = min > 0 ? min : (-1) * min;//初始化min,此時(shí)min為兩個數(shù)組總和之差
  for (i = 0; i < SIZE; i++)
    for (j = 0; j < SIZE; j++)
      {
        this = sumb (a, SIZE) - sumb (b, SIZE) + 2 * (b[ j ] - a[ i ]);
        this = this >= 0 ? this : (-1) * this;
        if (this < min)//如果this不小于min的話就不進(jìn)行交換
          {
            min = this;
            if (min == 0)//如果找到差值為0的組合,則提前退出
              break;
            tmp = a[ i ];
            a[ i ] = b[ j ];
            b[ j ] = tmp;
          }
      }
  printf ("Min=%d\n", min);
}

論壇徽章:
0
106 [報(bào)告]
發(fā)表于 2006-11-15 21:00 |只看該作者
先放在用Temp組,放上2組數(shù),然后相加,看看和除以2為多少,然后排序,從大的,開始交叉給數(shù),到最后的時(shí)候,參考和除以2這個數(shù),再用小值分配。

論壇徽章:
0
107 [報(bào)告]
發(fā)表于 2006-11-15 22:21 |只看該作者
就不能定義個數(shù)字??然后取a中與這個數(shù)字的差值,再取b中與這個數(shù)字的差值然后相加求最小值

論壇徽章:
0
108 [報(bào)告]
發(fā)表于 2006-11-16 08:44 |只看該作者
我的想法,先全部加起來求和然后除以2,然后從中找出離sum/2最小的和的數(shù)字存放在A數(shù)組中,剩下的放在B數(shù)組中。
kanwairen 該用戶已被刪除
109 [報(bào)告]
發(fā)表于 2006-11-16 10:23 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
0
110 [報(bào)告]
發(fā)表于 2006-11-16 17:13 |只看該作者
原帖由 kevert 于 2006-11-16 08:44 發(fā)表
我的想法,先全部加起來求和然后除以2,然后從中找出離sum/2最小的和的數(shù)字存放在A數(shù)組中,剩下的放在B數(shù)組中。


贊成這種方法:

suma = ave + Da
sumb = ave + Db
Da = -Db = (a - b) / 2
ave = (a + b) / 2

找一個數(shù)組,其元素之和最接近ave,找尋的方法可以采用回溯法吧
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP