银泰百货笔试-前端

算法两个题,

  1. 给出最长公共子序列的长度的函数,要求空间都复杂度为O(min(m,n)) ,时间复杂度为O(mn)
function lcs(str1,str2){
    let dp=new Array(str2.length+1).fill(0)
    for(let i=1;i<=str1.length;i++){
        let pre=0
        for(let j=1;j<=str2.length;j++){
            let temp=dp[j]
            dp[j]=str1[i-1]==str2[j-1]?pre+1:Math.max(dp[j-1],dp[j])
            pre=temp
        }
    }
    return dp[str2.length]
}
  1. 给出整数数组输出最大值的字符串,如[2,20,23,4,8],输出 '8423220'
function findLargestNumber(nums) {
  const sortedNums = nums.map(String).sort((a, b) => {
    const option1 = a + b;
    const option2 = b + a;
    return option2.localeCompare(option1);
  });

  return sortedNums.join("");
}

const nums1 = [2, 20, 23, 4, 8];
const nums2 = [2, 20, 23, 4, 8, 301, 30, 311, 3];
console.log(findLargestNumber(nums1)); // 输出 '8423220'
console.log(findLargestNumber(nums2)); // 输出 '8433113030123220'

#银泰笔试##笔试算法题##前端#
全部评论
这不是有手就行吗
1
送花
回复
分享
发布于 2023-09-04 21:49 湖北
试试携程,帮忙看流程,NTAW3GA
点赞
送花
回复
分享
发布于 2023-09-09 09:57 上海
秋招专场
校招火热招聘中
官网直投

相关推荐

投递数字马力(杭州)信息技术有限公司等公司7个岗位
点赞 评论 收藏
转发
2 9 评论
分享
牛客网
牛客企业服务