
package com.javaTest
import java.util.ArrayList
import java.util.Collections
import java.util.Comparator
import java.util.HashSet
import java.util.List
import java.util.Random
import java.util.Set
public class HighEnterpriseJavaAlgrorithm {
public static void main(String[] args) {
System.out.println("Hello World!")
}
/**
* 获取源整形数组的子数组的和最大值
* int arr {1,3,-1,4,6}
* int subIntArr {1,3}, {1,-1,6}
* @param intArr
* @return
*/
public static Integer getMaxTotalSumFroSubIntArr(int[] intArr) {
if(intArr==null) {
return null
}
if(intArr.length==0) {
return null
}
StringBuilder strBuilder=new StringBuilder()
for (int i = 0
int intTemp = intArr[i]
strBuilder.append(intTemp)
}
Random random=new Random()
String string = strBuilder.toString()
StringBuilder strBuilder1=new StringBuilder()
Set<String> strHashSet=new HashSet<String>()
int count=0
while(true) {
int nextIntIndexBegin = random.nextInt(intArr.length)
int nextIntIndexNextEle=random.nextInt(intArr.length)
if(nextIntIndexBegin==nextIntIndexNextEle) {
String substring = string.substring(nextIntIndexNextEle)
strBuilder1.append(substring)
}
String strBuilder12Str=strBuilder1.toString()
strHashSet.add(strBuilder12Str)
StringBuilder delete2NewStrBuilder = strBuilder1.delete(nextIntIndexBegin, nextIntIndexNextEle)
if(nextIntIndexBegin<nextIntIndexNextEle) {
String substring = string.substring(nextIntIndexBegin, nextIntIndexNextEle)
delete2NewStrBuilder.append(substring)
}else {
String substring = string.substring(nextIntIndexNextEle, nextIntIndexBegin)
delete2NewStrBuilder.append(substring)
}
String string2 = delete2NewStrBuilder.toString()
strHashSet.add(string2)
if(count>1000000) {
break
}
count++
}
List<Integer> intList=new ArrayList<Integer>()
List<ArrayList<Integer>> twoLayerIntList=new ArrayList<ArrayList<Integer>>()
strHashSet.forEach(e->{
for (int i = 0
int intCharTemp = e.charAt(i)
intList.add(Integer.valueOf(intCharTemp))
}
twoLayerIntList.add((ArrayList<Integer>) intList)
})
List<Integer> sumIntList=new ArrayList<>()
for(List<Integer> listIntArr : twoLayerIntList) {
int sumInt=0
for(Integer intTemp : listIntArr) {
sumInt+=intTemp
}
sumIntList.add(sumInt)
}
Collections.sort(sumIntList,new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
if(o1>o2) {
return 1
}else if(o1<o2){
return -1
}
return 0
}
})
Integer integerMax = sumIntList.get(sumIntList.size()-1)
return integerMax
}
}