Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有一个固定大小的数组。我想用 1s 或 2s 填充数组,以便所有元素总和为 X。
例子:
可能的组合:
array( 1, 2, 2, 2, 1, 2, 2 ) // sums to 12 array( 1, 1, 2, 2, 2, 2, 2 ) // sums to 12
找出数组中 2 的个数,这个数是:
#2's = X - array_size
选择随机的任意#2's元素(例如第一个元素),并赋予它们值 2,其余元素将获得值 1。
#2's
注意:很容易看出问题是否X < array_size或X> 2*array_size没有解决方案(显然上面的算法会失败)
X < array_size
X> 2*array_size