摘要:
这是我再水木社区看到的题目,然后自己思考了下。问题是这样的,现在有n个长度都为m的int数组, 每个数组可以有两种行为:原地不动,或者数组翻转。所谓数组翻转,就是a[i]=a[m-1-i],首尾颠倒。比如: [1,3,2,9]的翻转就是[9,2,3,1]。现我们将这n个翻转或者不翻转的数组的对应位置相加成一个新数组(sum[i]=a1[i]+a2[i]+...+an[i]), 现找到最优解让sum数组的方差最小。1).用一个二维数组array[n][m]表示n个长度为m大小的数组,初始化数据。 2).计算sum的平均值S_average = sum(array)/m,这求得sum[i]的平均值 阅读全文
摘要:
26个字母,不区分大小写,权重为1-26,每个字母的权重可以任意分配,但不能重复。任 意输入两个单词(字母数不超过255),请设计算法,能够计算出一种权重分配方法,使这 两个单词的权重差最大!我的想法是取单词A每个字母出现为+1,而单词B对应每个单词出现记为-1,先通过计算出两个单词所有字母的情况,然后从大到小排序,可能结果的形式为:p(13),c(9),h(2),e(0),w(-2),b(-6) ....o(-17);设置权重,将这个分为两部分,一部分>=0,一部分=0) W1 = 26*13+25*9+......+(-17)*12).再反过来算一次,即p=1;c=2.......( 阅读全文
摘要:
题目:r个颜色,每个颜色m个球,共m*r个球,要求均匀放到N个瓶子中(假设r可以被N整除),相同颜色的球不可以在同一个瓶子里,请问有多少种不同的放法。 阅读全文