@@ -148,6 +148,77 @@ func findPrefix(str1 string,str2 string) string{
148
148
149
149
- Median of Two Sorted Arrays
150
150
- Maximum Subarray
151
+
152
+ ``` xml
153
+ func maxSubArray(nums []int) int {
154
+ if len(nums)==0{
155
+ return -2147483648
156
+ }
157
+ if len(nums)==1{
158
+ return nums[0]
159
+ }
160
+
161
+ return findSum(nums,0,len(nums)-1)
162
+ }
163
+
164
+ func findSum(nums [] int, start int, end int) int{
165
+
166
+ if(start==end){
167
+ return nums[start]
168
+ }
169
+
170
+ mid:=(start+end)/2
171
+
172
+ lss:=findSum(nums,start,mid)
173
+ rss:=findSum(nums,mid+1,end)
174
+ css:=findCss(nums,start,end,mid)
175
+
176
+ if lss>rss{
177
+ if lss>css{
178
+ return lss
179
+ }else{
180
+ return css
181
+ }
182
+ }else{
183
+ if(rss>css){
184
+ return rss
185
+ }else{
186
+ return css
187
+ }
188
+ }
189
+ }
190
+
191
+
192
+ func findCss(nums [] int, start int, end int,mid int) int{
193
+
194
+
195
+ tempSumOfLeftArr:=0
196
+ tempSumOfRightArr:=0
197
+ sumOfLeftArr:=0
198
+ sumOfRightArr:=0
199
+
200
+
201
+ for i:=mid;i>=start;i--{
202
+ tempSumOfLeftArr=tempSumOfLeftArr+nums[i]
203
+
204
+ if(sumOfLeftArr<tempSumOfLeftArr || sumOfLeftArr ==0){
205
+ sumOfLeftArr =tempSumOfLeftArr
206
+ }
207
+
208
+ }
209
+
210
+ for i:=mid+1;i<=end;i++{
211
+ tempSumOfRightArr =tempSumOfRightArr+nums[i]
212
+
213
+ if(sumOfRightArr<tempSumOfRightArr || sumOfRightArr ==0){
214
+ sumOfRightArr =tempSumOfRightArr
215
+ }
216
+ }
217
+
218
+ return sumOfLeftArr+sumOfRightArr
219
+ }
220
+
221
+ ```
151
222
- Majority Element
152
223
- Kth Largest Element in an Array
153
224
- Search in Rotated Sorted Array
0 commit comments