关注
package LeetCode.ByteDance;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @Author :FANG MIAO
* @Date :Created on 2020/2/5 15:26
* @Description:寻找前k个递增序列
* 输入:[2,1,4,5,8,3,7,10,2,5] k=2
* 输出:[1,4,5,8],[3,7,10]
*/
public class TopKLenArray {
public static List<List<Integer>> topKArray(int[] arr, int k) {
if (k == 0)
return new ArrayList<>();
int[] dp = new int[arr.length];
Arrays.fill(dp, 1);
for (int i = 1; i < arr.length; i++) {
if (arr[i] > arr[i - 1])
dp[i] = dp[i - 1] + 1;
}
List<List<Integer>> res = new ArrayList<>();
//找最大的前k个子数组
for (int i = 0; i < k; i++) {
//找当前最大值
int maxIndex = 0;
for (int j = 0; j < dp.length; j++) {
if (dp[j] > dp[maxIndex]) {
maxIndex = j;
}
}
int len = dp[maxIndex];//最长数组的长度
List<Integer> curArr = new ArrayList<>();
for (int j = maxIndex - len + 1; j <= maxIndex ; j++) {
curArr.add(arr[j]);
dp[j] = 1;//将这里重置,要不然后面的循环会有问题
}
res.add(new ArrayList<>(curArr));
}
return res;
}
public static void main(String[] args) {
int[] arr = {2,1,4,5,8,3,7,10,2,5};
List<List<Integer>> res = topKArray(arr, 2);
for (List<Integer> l:
res) {
for (int num:
l) {
System.out.print(num);
System.out.print(" ");
}
System.out.println();
}
}
}
楼主这题可以用dp哈。看来字节比较喜欢考dp和backtrack。 另外问一下楼主知道是哪里没有答好导致没通过吗? 谢谢~
查看原帖
2 8
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-17 12:31
重庆交通大学 技术支持工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我是面试官,请用一句话让我破防 #
14737次浏览 98人参与
# 美团开奖 #
180212次浏览 954人参与
# 快手技术岗信息交流阵地 #
15376次浏览 82人参与
# 如果秋招能重来,我会____ #
28549次浏览 248人参与
# 中美关税战对我们有哪些影响 #
36962次浏览 299人参与
# i人适合做什么工作 #
7243次浏览 79人参与
# “vivo”个offer #
32265次浏览 240人参与
# 读研or工作,哪个性价比更高? #
74744次浏览 762人参与
# 华为保温 #
101711次浏览 378人参与
# 哪些瞬间让你真切感受到了工作的乐趣 #
16845次浏览 79人参与
# 小厂实习有必要去吗 #
69524次浏览 344人参与
# 校招生月薪1W算什么水平 #
13358次浏览 103人参与
# 哪些行业值得去? #
2472次浏览 40人参与
# 秋招什么时候开投比较合适? #
109488次浏览 807人参与
# 华为池子有多大 #
106954次浏览 746人参与
# 美团求职进展汇总 #
2804145次浏览 23826人参与
# 上班后和你想的一样吗? #
87120次浏览 666人参与
# 苦尽甘来时,再讲来时路 #
25453次浏览 355人参与
# 为了实习逃课值吗? #
22399次浏览 210人参与
# 大家实习每天都在干啥 #
96741次浏览 535人参与
# 工作压力大怎么缓解 #
119319次浏览 1112人参与
# 如果上班像打游戏,你最想解锁什么技能 #
5172次浏览 52人参与

查看13道真题和解析