Input: nums =[8,6,1,5,3]Output: 9Explanation: Triplet (2,3,4)is a mountain triplet of sum 9 since:-2<3<4- nums[2]< nums[3] and nums[4]< nums[3]And the sum of this triplet is nums[2]+ nums[3]+ nums[4]=9. It can be shown that there are no mountain triplets with a sum of less than 9.
Input: nums =[5,4,8,7,10,2]Output: 13Explanation: Triplet (1,3,5)is a mountain triplet of sum 13 since:-1<3<5- nums[1]< nums[3] and nums[5]< nums[3]And the sum of this triplet is nums[1]+ nums[3]+ nums[5]=13. It can be shown that there are no mountain triplets with a sum of less than 13.
classSolution {
public:int minimumSum(vector<int>& nums) {
int n = nums.size(), ans = INT_MAX;
for (int j =1; j < n-1; ++j) {
for (int i =0; i < j; ++i) {
if (nums[i] < nums[j]) {
for (int k = j+1; k < n; ++k) {
if (nums[k] < nums[j]) {
ans = min(ans, nums[i]+nums[j]+nums[k]);
}
}
}
}
}
return ans == INT_MAX ?-1: ans;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
funcminimumSum(nums []int) int {
n:= len(nums)
ans:=1<<31-1forj:=1; j < n-1; j++ {
fori:=0; i < j; i++ {
ifnums[i] < nums[j] {
fork:=j+1; k < n; k++ {
ifnums[k] < nums[j] {
sum:=nums[i]+nums[j]+nums[k]
ifsum < ans { ans = sum }
}
}
}
}
}
ifans==1<<31-1 { return-1 }
returnans}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
classSolution {
publicintminimumSum(int[] nums) {
int n = nums.length, ans = Integer.MAX_VALUE;
for (int j = 1; j < n-1; j++) {
for (int i = 0; i < j; i++) {
if (nums[i]< nums[j]) {
for (int k = j+1; k < n; k++) {
if (nums[k]< nums[j]) {
ans = Math.min(ans, nums[i]+nums[j]+nums[k]);
}
}
}
}
}
return ans == Integer.MAX_VALUE?-1 : ans;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
classSolution {
funminimumSum(nums: IntArray): Int {
val n = nums.size
var ans = Int.MAX_VALUE
for (j in1 until n-1) {
for (i in0 until j) {
if (nums[i] < nums[j]) {
for (k in j+1 until n) {
if (nums[k] < nums[j]) {
ans = minOf(ans, nums[i]+nums[j]+nums[k])
}
}
}
}
}
returnif (ans ==Int.MAX_VALUE) -1else ans
}
}
1
2
3
4
5
6
7
8
9
10
11
classSolution:
defminimumSum(self, nums: list[int]) -> int:
n = len(nums)
ans = float('inf')
for j in range(1, n-1):
for i in range(j):
if nums[i] < nums[j]:
for k in range(j+1, n):
if nums[k] < nums[j]:
ans = min(ans, nums[i]+nums[j]+nums[k])
return-1if ans == float('inf') else ans
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
impl Solution {
pubfnminimum_sum(nums: Vec<i32>) -> i32 {
let n = nums.len();
letmut ans =i32::MAX;
for j in1..n-1 {
for i in0..j {
if nums[i] < nums[j] {
for k in j+1..n {
if nums[k] < nums[j] {
ans = ans.min(nums[i]+nums[j]+nums[k]);
}
}
}
}
}
if ans ==i32::MAX { -1 } else { ans }
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
classSolution {
minimumSum(nums: number[]):number {
constn=nums.length;
letans=Infinity;
for (letj=1; j<n-1; j++) {
for (leti=0; i<j; i++) {
if (nums[i] <nums[j]) {
for (letk=j+1; k<n; k++) {
if (nums[k] <nums[j]) {
ans= Math.min(ans, nums[i]+nums[j]+nums[k]);
}
}
}
}
}
returnans===Infinity?-1 : ans;
}
}