当前位置: 首页 > 面试经验 >

SHEIN 后台开发工程师笔试

优质
小牛编辑
146浏览
2023-03-28

SHEIN 后台开发工程师笔试

 

刷题刷得我迷迷糊糊的 题目 一个target字符串 一个字符数组 nums 找出nums中包含target 的最小连续子数组 输入 target = abc, nums = [c,a,c,b,c,c] 输出 [1,4]

可能是将最长公共子序列改的

String target = "abc";
char[] nums = {'c','a','c','b','c','c'};
char[] targets = target.toCharArray();
int[][]dp = new int[targets.length+1][nums.length+1];
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
for(int i = 0; i < targets.length; i++){
    for(int j = 0; j < nums.length; ++j){
        if(targets[i] == nums[j]) {
            dp[i+1][j+1] = dp[i][j]+1;
            if(i == targets.length-1 && dp[i+1][j+1] == targets.length){
                minHeap.offer(j);
            }
        }else{
            dp[i+1][j+1] = Math.max(dp[i][j+1],dp[i+1][j]);
        }
    }
}
if(!minHeap.isEmpty()){
    System.out.println(minHeap.poll());
} else
    System.out.println("null"); 

#SHEIN#
 类似资料: