笔试真题复盘:无序数组里找三个数,乘积最大,要求 O(n)
先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面很短:给定一个无序数组,里面混着正数、负数和零,找出三个数使乘积最大,要求时间复杂度 O(n)、空间复杂度 O(1)。考点不在「找三个大数」,而在那个容易被忽略的负数。
先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面很短:给定一个无序数组,里面混着正数、负数和零,找出三个数使乘积最大,要求时间复杂度 O(n)、空间复杂度 O(1)。考点不在「找三个大数」,而在那个容易被忽略的负数。
先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面很短:给一个正整数 n,每一步如果 n 是偶数就除以 2,如果是奇数可以选择加 1 或减 1,一直处理下去,问最少多少步能变成 1。