这是一公司的面试题,我到现在没想到答案,故请教各位工程师。
1楼
是不是华为的题目啊?就爱搞这些乱七八糟,折磨人的问题
2楼
算法的描述 10个小球质量未知 我们假设 10个球没有编号。 我们利用最简单的冒泡排序进行了 排序 结果出来了编上号码 1, 2, 3...10 我们假设10号球时最重的 1号球最轻。 将轻的一段的球 编号从小到大 和右边的盘里的球进行尝试交互。 交互的要求是 轻的一段 的号码 必须比重的一段的号码小。 举例子来说 比如 左边是 4 5 6 8 9 右边的是 1 2 3 7 10 左边重, 那么1 就和左边所有 编号比1 大的球 不断进行交互。 交互从编号大的开始 先是9 此时序列就变成了 左边 1 4 5 6 8 右边 9 2 3 7 10 如果交换以后 天平不转向那么 就是交互成功。 如果不成功,就仍旧换回去。 比如 左边是 4 5 6 8 9 右边的是 1 2 3 7 10 左边重 那么如果右边的7 要交互 就只能尝试和 9 8进行尝试了。 当所有的交换都会改变天平的平衡时了,那么此时就是最优结果了。 有点回溯算法的样子。 等砖头
3楼
感觉像是脑机能急转弯!哈哈
4楼
我脑子在转弯的途中自己撞墙了!~ 你要负责!赔偿我脑袋磨损费!
5楼
有毛病啊 生活中你碰到这种问题会去假设的弄来弄去吗 正常人都是两边各放5个 再慢慢调整呗