Description:
Example 1:
Example 2:
Example 3:
Soluton 1(C++):
Solution 2(C++):
算法分析:
解法一:
解法一是我最直接的想法,类似的方法我在之前有一道题好像也用过,找到了: LeetCode-628. Maximum Product of Three Numbers。这628题中,我也常使用这样的办法找到三个最大的数。需要强调一点的就是题目的理解与条件的判断。最骚的就是,我最开始first、second与third的初始值为INT_MIN,但是后来题目就有[-2147483648, 1, 2]这样的例子,所以解决方法就是使用更小的值:LONG_MIN,来替代。虽然这样改动后,编译通过,AC。但是上网查发现LONG_MIN的值与编译器有关,如果是32位编译器,其实由于long型与int型都是占用4各字节,所以这两者相等。所以为了保险起见,也可以只用LLONG_MIN替代。
解法二:
解法二就是比较常见的使用set容器来解决。当然,除了vector容器系统整理了。set、map容器还没有系统整理。这个坑抓紧填了。
程序分析:
略。