目录
- 题目: 给定两个整数a和b,要求在使用任何辅助空间的情况下,交换两个的值
- 题目: 给两个杯子,一个5升,一个6升,水随便用,最后取出3升水
- 题目: 给10个箱子,有一个比其他得要轻,用最少的比较次数找出这个箱子
题目: 给定两个整数a和b,要求在使用任何辅助空间的情况下,交换两个的值
方法一:1
2
3a = a + b;
b = a - b;
a = a - b;
方法二:1
2
3a = a^b;
b = a^b;
a = a^b;
题目: 给两个杯子,一个5升,一个6升,水随便用,最后取出3升水
方法:
- 6升装满倒入5升杯子,6升杯子里剩1升水;
- 6升杯子中的1升倒入5升杯子;
- 6升杯子装满水倒入5升杯子,6升杯子里剩2升水;把5升杯子水倒掉;
- 6升杯子中的2升倒入5升杯子;
- 6升杯子装满水倒入5升杯子,6升杯子里剩3升水,完成。
题目: 给10个箱子,有一个比其他得要轻,用最少的比较次数找出这个箱子
方法:
二分法:
用天平左右各五个进行称量,10 => 5
较轻的一组留下一个,继续进行分开称量,如果左右相等,则剩余的那一个为最轻的,否则剩下的两个继续进行比较5 => 1 || 5 => 2
最后一次比较 2 => 1
1 | 为了能让用户尽快找到低价机票,我们从服务器渠道航班数据后需要按价格进行排序,然后展示给用户。 |
1 | 1. 成人至少选择一个,儿童可不选 |