【Leetcode Daily】2874有序三元组中的最大值II
题目浅析
想查看原题可以点击题目链接。
简单地说,就是给一个数组,找到其中值最大的三元组,三元组要求下标 i < j < k,值计算公式为(nums[i]-nums[j])*nums[k]。
思路分享
基本的枚举思路可以参考【Leetcode Daily】2909元素和最小的山形三元组。
从值的计算可以轻松得知,要是得值尽可能的大,nums[i] 和 nums[k] 都要尽可能大,而 nums[j] 要尽可能小。
于是就可以预处理数组,找到每个位置上下标往右的最大值,这样在遍历过程中就能以 O(1) 的复杂度获取到能用的最大的 nums[k] 值。接着在遍历过程中顺便记录最大值当作 nums[i] 用即可。
类似思路更完整的解析已在历史题说过,故上面只是简单叙述思路。历史题目:【Leetcode Daily】2909元素和最小的山形三元组。
代码解答(强烈建议自行解答后再看)
- 参考题解
1 | class Solution: |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuYaoQi's Blogs!