创建平衡类以平衡权重

时间:2014-03-24 21:01:17

标签: objective-c

首先,我必须承认这是我的任务。但我不是要求任何人解决它,但我正在努力解决它,并需要我的算法帮助。

我有一个权重数组,分配给一个比例的leftSide和rightSide。我需要使用数组中的权重来平衡右侧和左侧的权重。

我有以下代码但它并未涵盖所有情况:

-(BOOL) isBalanced
{
    _weights = [NSMutableArray arrayWithArray:@[@3,@4,@2,@1,@5,@6,@4]];

    self.leftSide =  [[_weights objectAtIndex:arc4random() % 7] integerValue]; // random weight
    self.rightSide = [[_weights objectAtIndex:arc4random() % 7] integerValue]; // random weight

    if(self.leftSide == self.rightSide) return YES; // already balanced

    if(self.leftSide > self.rightSide)
    {
        // add weights on right side
        int difference = self.leftSide - self.rightSide;
        int index = [_weights indexOfObject:[NSNumber numberWithInt:difference]];
        self.rightSide += [[_weights objectAtIndex:index] integerValue];
         NSLog(@"%d",index);
    }
    else
    {
        int difference = self.rightSide - self.leftSide;
        int index = [_weights indexOfObject:[NSNumber numberWithInt:difference]];
        self.leftSide += [[_weights objectAtIndex:index] integerValue];
        NSLog(@"%d",index);
    }

    return self.leftSide == self.rightSide;
}

更新:

简化!我有一个数字6,现在我需要在一个int数组中搜索,如果有任何数字可以加在一起得到6.例如:

1,2,3,5,4 

在上面的数组中,我可以取1 + 2 + 3,这就是6.我也可以取4 + 2,这是6.我的问题是如何找到总数达到6的个别数字。< / p>

0 个答案:

没有答案