当前位置: 首页 > 知识库问答 >
问题:

正在计算不匹配的袜子组合的总数

巢睿
2023-03-14

彩色2->3只袜子

彩色3->7只袜子

彩色4->11袜子

1:3袜子---->1:3袜子---->1:0袜子---->1:0袜子

2:4袜子---->2:4袜子---->2:1袜子---->2:1袜子

3:4袜子-->3:4袜子-->3:0袜子-->3:0袜子

4:7袜子-->4:0袜子-->4:0袜子-->4:0袜子-->4:0袜子

5:11袜子---->5:4袜子---->5:0袜子---->5:0袜子

------>总计=14种不匹配袜子的可能组合。这似乎太天真了。有没有人对如何优化有什么想法?如果需要,我可以发布我的代码。

共有1个答案

徐昆
2023-03-14

我认为最优的解决方案可以通过检查所有可能的分组不同的袜子颜色成2堆。对于每一个这样的分组,P可以制作奇数双袜子,其中P是最小一堆袜子的数量。您需要给出最大p的分组。您可以生成所有可能的分组袜子成2堆递归。

下面是一些Java代码来说明:

public static void main(String[] args)
{
    int[] socks = {3,4,4,7,11};
    System.out.println(count(0, 0, socks, 0));
}

static int count(int a, int b, int[] socks, int i)
{
    if(i == socks.length)
    {
        return Math.min(a, b);
    }

    return Math.max(count(a+socks[i], b,          socks, i+1), 
                    count(a,          b+socks[i], socks, i+1));
}

输出:

14
 类似资料:
  • 问题内容: 我想编写一个正则表达式来计算文本块中空格/制表符/换行符的数量。所以我天真地写了以下内容: 由于某些未知原因,它总是返回。上面的陈述有什么问题?此后,我通过以下方法解决了该问题: 问题答案: tl; dr:通用模式计数器 对于那些来到这里的人来说,他们正在寻找一种通用的方法来计算字符串中正则表达式模式的出现次数,并且如果出现的次数为零,也不希望它失败,那么您需要的是这段代码。这是一个示

  • 我有一个,子数组总是包含5个数字-数字按大小排序,不能在子数组中重复,但是中可以有更多“相同”的子数组(具有相同数字的子数组)。 如何获得数字的组合(数组),其中该组合(或者更确切地说,由该$n数字组合生成的5个数字组合)将与的大多数子数组相匹配? 示例:的的所需结果将是,因为从该结果导出的总共有二十一个5个数字组合: 这些组合将匹配几乎所有的子数组(只有第二个和最后两个子数组超出范围)。 我曾尝

  • 有2个圆和他们的中心是固定的,将作为输入给出。然后将会有n个点,它们的x和y坐标被给出作为输入。 最后,还会有q个查询。对于每个查询,将给出两个圆(设为r1和r2)的半径。为每个查询输出第一个圆或第二个圆内的点总数。如果一个点到圆心的距离小于或等于圆的半径,则该点位于圆内。 约束条件:n,q<=10^6r1,r2<=10^7,对于每个坐标,x和y<=10^6 我正在寻找一个O(nlogn)或O(n

  • null A-ZA-Z0-90,3)(?ltSerialMarket&>A-ZA-Z0,2)(?ltSerialSuffix&>a-zA-Z0-9*)/code> 基本上它说: 这意味着: 匹配1 完全匹配0-8 组 0-3 abc 组 3-5 fo 组 5-8条 上述案例是预期结果。 当regex失败时,因为第4个和第5个字符是数字而不是字母,所以它失败了,这是正确的。问题是应该与第二组匹配的字

  • 我有一个关于使用“永远”类型的穷举开关/情况的问题。 比如说,我有一组字符串:{a,B}(字符串可以是任意长的单词,而且集合本身可能非常大),对于每个子集(比如{},{a,B}),我想创建一个函数:show:Set= 预发伪代码: 是否有可能在编译时保证show函数中包含所有可能的子集?所以把C加到集合{A,B,C}需要我扩充show函数吗?并为{C}、{A,C}、{B,C}和{A,B,C}添加案

  • 问题内容: 我有两个数组 我需要将此合并到以编程方式匹配用户ID的单个数组 最终的数组应该像 有没有一种更清洁的方法来执行此操作,我的应用程序中有下划线库,但是我找不到一种干净的方法来实现此目的 问题答案: 使用下划线的解决方案: _.map 跨成员 使用 _.findWhere 查找匹配的成员信息 **** _。省略 匹配成员信息中的ID密钥 _。 使用会员信息 扩展 会员