编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

字节跳动高级研发获取源整形数组的子数组的和最大值

wxchong 2025-07-24 22:42:30 开源技术 5 ℃ 0 评论

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;

}

}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表