面字节遇到的一个算法题,求大佬解答

一个数组a,长度是n,划分为和相等的m个子数组
求m的最大值?
例a=[2,4,3,6,3,9]
m=3
[2,4,3],[9],[3,6]

#面试那些事##字节跳动##笔试题目#
全部评论
子节面试算法题都这么难嘛
1 回复 分享
发布于 2022-03-28 01:27
如果是划分子数组不是子集 那倒还好吧 没有特别难
1 回复 分享
发布于 2022-03-30 14:52
求sum;枚举分成的块数(比如案例中分成了3块);贪心地验证当前的这个分法是否可行(这里能求出子数组和=sum/块数,前提是能整除)
1 回复 分享
发布于 2022-03-30 20:38
能否用双指针,两头走,左边值小于右边,则左边右走,左边大于右边,右边左走,等于,就先记录下来,又处理中间剩下的,没有值与之前相等的,就把前面的取出来又向中间增加数据处理?我自己想的,还没做
点赞 回复 分享
发布于 2022-04-23 10:12
import org.junit.Test; /** * 题目: 一个数组a,长度n,划分为和相等的m个子数组,求m的最大值? * case:a=[2,4,3,1,1,1,3,6,1,1,1,3,9,1,1,1] * 答案:m=3 [2,4,3] [9] [3,6] */ public class test1 { public int getMax(int[] a){ int max=0,sum=0,num_max=0; for (int i=0;i<a.length>num_max){ num_max=a[i]; } } for (int i=0;i<a.length>max){ max=i; } } } } return max; } @Test public void test(){ int[] a=new int[]{3,7,2,4,5,6,9}; int b=getMax(a); System.out.println("最大值b:"+b); } }</a.length></a.length>
点赞 回复 分享
发布于 2022-04-30 19:02

相关推荐

过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
1 4 评论
分享
牛客网
牛客企业服务