3698. Split Array With Minimum Difference Medium
1/**
2 * [3698] Split Array With Minimum Difference
3 *
4 * You are given an integer array nums.
5 * Split the array into exactly two <span data-keyword="subarray-nonempty">subarrays</span>, left and right, such that left is <span data-keyword="strictly-increasing-array">strictly increasing</span> and right is <span data-keyword="strictly-decreasing-array">strictly decreasing</span>.
6 * Return the minimum possible absolute difference between the sums of left and right. If no valid split exists, return -1.
7 *
8 * <strong class="example">Example 1:
9 * <div class="example-block">
10 * Input: <span class="example-io">nums = [1,3,2]</span>
11 * Output: <span class="example-io">2</span>
12 * Explanation:
13 * <table style="border: 1px solid black;">
14 * <thead>
15 * <tr>
16 * <th style="border: 1px solid black;">i</th>
17 * <th style="border: 1px solid black;">left</th>
18 * <th style="border: 1px solid black;">right</th>
19 * <th style="border: 1px solid black;">Validity</th>
20 * <th style="border: 1px solid black;">left sum</th>
21 * <th style="border: 1px solid black;">right sum</th>
22 * <th style="border: 1px solid black;">Absolute difference</th>
23 * </tr>
24 * </thead>
25 * <tbody>
26 * <tr>
27 * <td style="border: 1px solid black;">0</td>
28 * <td style="border: 1px solid black;">[1]</td>
29 * <td style="border: 1px solid black;">[3, 2]</td>
30 * <td style="border: 1px solid black;">Yes</td>
31 * <td style="border: 1px solid black;">1</td>
32 * <td style="border: 1px solid black;">5</td>
33 * <td style="border: 1px solid black;">|1 - 5| = 4</td>
34 * </tr>
35 * <tr>
36 * <td style="border: 1px solid black;">1</td>
37 * <td style="border: 1px solid black;">[1, 3]</td>
38 * <td style="border: 1px solid black;">[2]</td>
39 * <td style="border: 1px solid black;">Yes</td>
40 * <td style="border: 1px solid black;">4</td>
41 * <td style="border: 1px solid black;">2</td>
42 * <td style="border: 1px solid black;">|4 - 2| = 2</td>
43 * </tr>
44 * </tbody>
45 * </table>
46 * Thus, the minimum absolute difference is 2.
47 * </div>
48 * <strong class="example">Example 2:
49 * <div class="example-block">
50 * Input: <span class="example-io">nums = [1,2,4,3]</span>
51 * Output: <span class="example-io">4</span>
52 * Explanation:
53 * <table style="border: 1px solid black;">
54 * <thead>
55 * <tr>
56 * <th style="border: 1px solid black;">i</th>
57 * <th style="border: 1px solid black;">left</th>
58 * <th style="border: 1px solid black;">right</th>
59 * <th style="border: 1px solid black;">Validity</th>
60 * <th style="border: 1px solid black;">left sum</th>
61 * <th style="border: 1px solid black;">right sum</th>
62 * <th style="border: 1px solid black;">Absolute difference</th>
63 * </tr>
64 * </thead>
65 * <tbody>
66 * <tr>
67 * <td style="border: 1px solid black;">0</td>
68 * <td style="border: 1px solid black;">[1]</td>
69 * <td style="border: 1px solid black;">[2, 4, 3]</td>
70 * <td style="border: 1px solid black;">No</td>
71 * <td style="border: 1px solid black;">1</td>
72 * <td style="border: 1px solid black;">9</td>
73 * <td style="border: 1px solid black;">-</td>
74 * </tr>
75 * <tr>
76 * <td style="border: 1px solid black;">1</td>
77 * <td style="border: 1px solid black;">[1, 2]</td>
78 * <td style="border: 1px solid black;">[4, 3]</td>
79 * <td style="border: 1px solid black;">Yes</td>
80 * <td style="border: 1px solid black;">3</td>
81 * <td style="border: 1px solid black;">7</td>
82 * <td style="border: 1px solid black;">|3 - 7| = 4</td>
83 * </tr>
84 * <tr>
85 * <td style="border: 1px solid black;">2</td>
86 * <td style="border: 1px solid black;">[1, 2, 4]</td>
87 * <td style="border: 1px solid black;">[3]</td>
88 * <td style="border: 1px solid black;">Yes</td>
89 * <td style="border: 1px solid black;">7</td>
90 * <td style="border: 1px solid black;">3</td>
91 * <td style="border: 1px solid black;">|7 - 3| = 4</td>
92 * </tr>
93 * </tbody>
94 * </table>
95 * Thus, the minimum absolute difference is 4.
96 * </div>
97 * <strong class="example">Example 3:
98 * <div class="example-block">
99 * Input: <span class="example-io">nums = [3,1,2]</span>
100 * Output: <span class="example-io">-1</span>
101 * Explanation:
102 * No valid split exists, so the answer is -1.
103 * </div>
104 *
105 * Constraints:
106 *
107 * 2 <= nums.length <= 10^5
108 * 1 <= nums[i] <= 10^5
109 *
110 */
111pub struct Solution {}
112
113// problem: https://leetcode.com/problems/split-array-with-minimum-difference/
114// discuss: https://leetcode.com/problems/split-array-with-minimum-difference/discuss/?currentPage=1&orderBy=most_votes&query=
115
116// submission codes start here
117
118impl Solution {
119 pub fn split_array(nums: Vec<i32>) -> i64 {
120
121 }
122}
123
124// submission codes end
125
126#[cfg(test)]
127mod tests {
128 use super::*;
129
130 #[test]
131 fn test_3698() {
132 }
133}
134Back
© 2026 bowen.ge All Rights Reserved.