题目 ID: q-9902

解法:先排序数组,然后计算平均值(avg),接著用左右指针分别指到数组开头和结尾,假如右指针 > avg返回false,如果price[right]==avg,则right--;如果prices[left]+price[right],left++, right--;如果prices[left] + prices[right] > avg直接返回false。当 left > right 退出循环,代表平分完了,返回true。但这样过不了所有用例,假如avg为5,已经挑选了3,1,还可以再拿一个 1,所以当prices[left] + prices[right] < avg需要用 temp 变量来保存上次选取的值,判断是否等于avg时考虑temp+price[right] == avg。

频次 1
编程与算法

当前状态:未收藏、未完成

常见追问

暂无追问变体。

常见公司

VIVO