3698. Split Array With Minimum Difference Medium

@problem@discussion
#Array#Prefix Sum



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}
134

Back
© 2026 bowen.ge All Rights Reserved.