网站首页 > 开源技术 正文
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; i < intArr.length; i++) {
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; i < e.length(); i++) {
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;
}
}
- 上一篇: 异或的魅力!图解「数组中两个数的最大异或值」
- 下一篇: Java泛型详解,通俗易懂只需5分钟
猜你喜欢
- 2025-07-24 十大经典排序算法-堆排序,计数排序,桶排序,基数排序
- 2025-07-24 halcon select_shape算子(halcon算子中文手册)
- 2025-07-24 100个Java工具类之1:多种集合类型实现排序功能
- 2025-07-24 spring如何让我们的拦截器顺序放最后执行#java
- 2025-07-24 怎么求第K大的数,topK 问题(快排的应用)java
- 2025-07-24 Java 最细的集合类总结(java集合有那些)
- 2025-07-24 低成本高性能AI开发神器!极摩客EVO-X2桌面Mini AI工作站深度评测
- 2025-07-24 吊打面试官(十五)--Java语言中HashMap类一文全掌握
- 2025-07-24 用动态规划怎么求最大子序列和打家劫舍问题Java
- 2025-07-24 线程池最佳线程数量到底要如何配置?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)