• 100106. 元素和最小的山形三元组 I


    给你一个下标从 0 开始的整数数组 nums 。

    如果下标三元组 (i, j, k) 满足下述全部条件,则认为它是一个 山形三元组 :

    i < j < k
    nums[i] < nums[j] 且 nums[k] < nums[j]
    请你找出 nums 中 元素和最小 的山形三元组,并返回其 元素和 。如果不存在满足条件的三元组,返回 -1 。

    示例 1:

    输入:nums = [8,6,1,5,3]
    输出:9
    解释:三元组 (2, 3, 4) 是一个元素和等于 9 的山形三元组,因为: 
    - 2 < 3 < 4
    - nums[2] < nums[3] 且 nums[4] < nums[3]
    这个三元组的元素和等于 nums[2] + nums[3] + nums[4] = 9 。可以证明不存在元素和小于 9 的山形三元组。
    示例 2:

    输入:nums = [5,4,8,7,10,2]
    输出:13
    解释:三元组 (1, 3, 5) 是一个元素和等于 13 的山形三元组,因为: 
    - 1 < 3 < 5 
    - nums[1] < nums[3] 且 nums[5] < nums[3]
    这个三元组的元素和等于 nums[1] + nums[3] + nums[5] = 13 。可以证明不存在元素和小于 13 的山形三元组。
    示例 3:

    输入:nums = [6,5,4,3,4,5]
    输出:-1
    解释:可以证明 nums 中不存在山形三元组。
     

    提示:

    3 <= nums.length <= 50
    1 <= nums[i] <= 50

    题解:水题

    code:

    1. class Solution {
    2. public int minimumSum(int[] nums) {
    3. int min = Integer.MAX_VALUE;
    4. for (int i = 0; i < nums.length - 2; i++) {
    5. for (int j = i + 1; j < nums.length -1; j++) {
    6. if (nums[j] > nums[i]) {
    7. for (int k = j + 1; k < nums.length; k++) {
    8. if (nums[j] > nums[k]) {
    9. int tmp = nums[i] + nums[j] + nums[k];
    10. if (min > tmp) {
    11. min = tmp;
    12. }
    13. }
    14. }
    15. }
    16. }
    17. }
    18. if (min == Integer.MAX_VALUE) {
    19. min = -1;
    20. }
    21. return min;
    22. }
    23. }

  • 相关阅读:
    蓝桥杯-递增三元组(三种解法,二分, 双指针, 前缀和)
    Visual Studio Cpp CLR C# 替换
    微信模板消息跳转小程序
    二分法寻找数组元素
    MySQL-有锁读
    Go中的channel
    react:封装组件
    线性反向传播(机器学习)
    uniapp开发app,在ios真机上出现的css样式问题
    LeetCode 0264. 丑数 II
  • 原文地址:https://blog.csdn.net/xiao__jia__jia/article/details/133976550