记录笔试0829

第一部分:单项选择

第二部分:多项选择

第三部分:编程三道题

第一题:SQL

有一个视频发布记录表,有视频主键,发布者id,发布视频时长,请在这个表中,请用MYSQL查询,在视频数据表中,筛选发布视频平均时长大雨300秒的up主,按照up主全部视频的平均时长倒序,视频ID升序,返回第三行到第六行的视频id

SELECT video_id 
FROM video_table
WHERE uploader_id IN (
  SELECT uploader_id
  FROM video_table 
  GROUP BY uploader_id
  HAVING AVG(video_duration) > 300
) 
ORDER BY (
  SELECT AVG(video_duration) 
  FROM video_table AS t 
  WHERE t.uploader_id = video_table.uploader_id
) DESC, video_id ASC
LIMIT 4 OFFSET 2;

第二题:动态规划

给定两个字符串,返回使两个字符串相等所需要删除字符的ASCII值的最小和

public class Main {
  public static int minimumDeleteSum(String s1, String s2) {
    int[][] dp = new int[s1.length() + 1][s2.length() + 1];
    for (int i = s1.length() - 1; i >= 0; i--) {
      dp[i][s2.length()] = dp[i + 1][s2.length()] + s1.codePointAt(i);
    }
    for (int j = s2.length() - 1; j >= 0; j--) {
      dp[s1.length()][j] = dp[s1.length()][j + 1] + s2.codePointAt(j);
    }
    for (int i = s1.length() - 1; i >= 0; i--) {
      for (int j = s2.length() - 1; j >= 0; j--) {
        if (s1.charAt(i) == s2.charAt(j)) {
          dp[i][j] = dp[i + 1][j + 1];
        } else {
          dp[i][j] = Math.min(dp[i + 1][j] + s1.codePointAt(i), dp[i][j + 1] + s2.codePointAt(j));
        }
      }
    }
    return dp[0][0];
  }

  public static void main(String[] args) {
    String s1 = "delete";
    String s2 = "leet";
    System.out.println(minimumDeleteSum(s1, s2));
  }
}

第三题:二叉树

给定一个二叉树的root,返回最长路径的长度,这个路径中每个节点具有相同的值,这条路径可以经过也可以不经过根节点,两个节点之间的长度由他们之间的边数表示

public int longestUnivaluePath(TreeNode root) {
  int[] maxLen = new int[1];
  maxLen[0] = 0;
  longestPath(root, maxLen);
  return maxLen[0];
}

private int longestPath(TreeNode node, int[] maxLen) {
  if (node == null) {
  return 0; 
  }
  
  int left = longestPath(node.left, maxLen);
  int right = longestPath(node.right, maxLen);
  
  int leftLen = 0, rightLen = 0;
  if (node.left != null && node.left.val == node.val) {
  leftLen = left + 1;
  }
  if (node.right != null && node.right.val == node.val) {
  rightLen = right + 1;
  }
  
  maxLen[0] = Math.max(maxLen[0], leftLen + rightLen);
  return Math.max(leftLen, rightLen);
}

B站

全部评论
好强!感谢分享
点赞 回复 分享
发布于 2023-08-29 22:32 广西

相关推荐

头像
05-16 12:47
已编辑
中国地质大学(武汉) Java
你出生在农村,与其它农村小孩子无异小学时你对成绩没有概念,只感觉上课不听课也是无聊,只知道不写完作业会被老师罚站一到考试,自己成绩总是名列靠前,即使偶尔落后,你也从不在意中学时你觉得课本的东西很简单,随便学学就会了,并没有大量刷题你总是想不通,那些所谓的数学物理中难题,明明是在送分,为什么你的同学总是想不出解题方法高中时这三年你过的不容易,晚睡早起,给了自己很多压力.但是你也发现自己是有些小聪明的,你感觉班里有些同学很刻苦,但成绩比你差远了。那些数学题和物理题的陷阱,同学一遍遍踩坑,但是你总能发现并避开它们.“为了父母的期盼,为了恩师的厚望,为了天赐的智慧,为了青春的理想......”“天行健...
创作助手_刘北:其实,这种已经是神童级别的了,不费吹灰之力就能拿到自己想要的东西,就像机器按照程序走了一遍,就像我小时候看爱情公寓,觉得他们都很惨,几个人只能挤在一个房间里合租,但是好在他们有一群非常好的朋友,随着时间的推移,慢慢长大了,在看爱情公寓的时候,觉得他们都很厉害,博士、留学生、***、电台公子,数学天才,任何一个都是我可望而不可即的,更别说可以在异地认识一群更好的朋友了,所以呢,人还是要自给自足,满足当下,不要攀比,意气风发的且有理想的18岁少年永远都存在,只不过随着时间的推移他被你包裹在了洋葱的最深处。
点赞 评论 收藏
分享
04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
牛大宝儿236:还没入职就PUA,[发火我之前遇到一个月给500块钱的
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务