做题思路两个数组一个数组存储每个家庭的人口数,一个数组存储每个家庭分到的房子数 以人数最少的家庭为中心(人数最少的家庭房子数分为1),分为左右两个部分; 左边部分,从数组下标大往小遍历,如果前一个比后一个人数多那么就在后一个房子数量上+1,如果小于等于的话,前一个家庭的房子数为1; 右边部分与左部分相反,数组下标从小往大遍历,如果后一个比前一个家庭人口数多,那么后一个家庭分到的房子数为前一个家庭数+1,否则为1; 注:最小人口的家庭位置可能为端点,即数组下标0或者家庭数n-1,这里需要提前判断出来 #include <iostream> #include &l...