现场面试题

这里写目录标题

  • 1.sql
    • 1.1 只保留学生的最新成绩
    • 1.2 统计通话号码数
    • 1.3 更新地址
  • 2.基础题
    • 2.1 请求序列第N位的值: 0, 1, 1, 2, ,3, 5, 8, 13, 21, 34.....第N位的值
    • 2.2 请写一段java代码,输出存在重复字母的单词

1.sql

1.1 只保留学生的最新成绩

表student中记录学生的成绩信息, 要求只保留学生的最新一条成绩记录
在这里插入图片描述

传统方式

  1. 根据学生编号进行group by, 找到最新的一条记录(编号、时间)
  2. 根据编号和时间, 查询出记录的完整信息(id为2, 5, 6)
  3. 删除其余记录
delete from student where id not in (select id from student s1 inner join (select `name`, max(time) as time from student group by `name`) s2on s1.name = s2.name and s1.time = s2.time
)

在这里插入图片描述

通过联表查询, 解决嵌套

  1. 通过与自身表进行关联, 让同一个人的记录互相进行对比,
  2. 设置条件s1.time > s2.time, 且使用left join, 保证时间早的记录被归档在右侧
  3. 即使只有一条记录, 也会被s1.id != s2.id过滤
  4. 时间最晚的那条记录, 永远不会出现在右侧. 右侧都是对比下来, 时间更早的数据, 我们将它们的id排重
  5. 删除这些id
delete from student where id in (select DISTINCT s2.idfrom student s1 left join student s2 on s1.`no` = s2.`no` and s1.id != s2.idwhere s1.time > s2.time
)

1.2 统计通话号码数

在这里插入图片描述

日期通话次数通话时长当天最早通话时间当天最晚通话时间平均通话时长通话号码数
  1. 首先通过函数将时间转换为日期(年月日), 并基于日期进行分组
  2. 在分组的基础上, 对组中的通话号码进行去重, 得到通话号码数
select DATE(begin_time) as date,COUNT(1) as count,SUM(cost) as sum,MIN(begin_time) as min,MAX(begin_time) as max,AVG(cost) as avg,COUNT(DISTINCT number) as number
from tel_record
group by DATE(begin_time)

1.3 更新地址

在这里插入图片描述
根据no将报名表(bm)中的地址全部替换为学生表(student)中的地址, 写出对应的sql

  1. 将rm和student关联, 得到一个结果集, 这个结果集中包含所有符合条件的数据
  2. 当使用UPDATE语句与INNER JOIN一起操作时, 实际上是直接修改了目标表中符合连接条件的行
UPDATE bm
INNER JOIN student ON bm.no = student.no
SET bm.address = student.address;

2.基础题

2.1 请求序列第N位的值: 0, 1, 1, 2, ,3, 5, 8, 13, 21, 34…第N位的值

  1. 规律: n = (n-1) + (n-2)
  2. 递归的退出条件: n=0时值为0, n=1时值为1
public static void main(String[] args) {System.out.println(get(10));
}private static int get(int n) {if (n <= 1) {// 退出条件return n;} else {// 递归return get(n - 1) + get(n - 2);}
}

使用迭代的方式:

  1. 因为n为0和1时, 没有办法找到规律, 所以直接返回对应的值
private static int get(int n) {if (n <= 1) {return n;}// 上一个int prev = 0;// 当前int curr = 1;for (int i = 2; i <= n; i++) {int temp = curr;curr = prev + curr;prev = temp;}return curr;
}

2.2 请写一段java代码,输出存在重复字母的单词

public static void main(String[] args) {String[] words = {"spring", "mybatis", "springboot", "vocation", "birthday", "username"};for (String word : words) {if (hasDuplicateLetters(word)) {System.out.println(word + " 存在重复字母");}}
}private static boolean hasDuplicateLetters(String word) {HashSet<Character> set = new HashSet<>();for (char ch : word.toCharArray()) {if (!set.add(ch)) {return true; // 如果添加失败,说明该字母已经存在于集合中,存在重复字母}}return false;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/7679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF988D题解

题目大意 题目传送门 题意&#xff1a;给你有 n n n 个数字的一个数列&#xff0c;问最多有多少个数字他们 两两的差是 2 的幂次方数。 思路 首先&#xff0c;我们想一个数能不能组成一个满足题目要求的序列&#xff0c;答案是肯定的。&#xff08;直接输出 a 1 a_1 a1​…

Android Studio之ImageView

ImageView是图像显示控件&#xff0c;与图形显示有关的属性说明如下: scaleType&#xff1a;指定图形的拉伸类型&#xff0c;默认是fitCenter。src&#xff1a;指定图形来源&#xff0c;src图形按照scaleType拉伸。 注意背景图不按scaleType指定的方式拉伸&#xff0c;背景默…

网络安全之交换基础

交换属于二层技术。路由器&#xff08;router&#xff09;是三层设备&#xff0c;可以基于IP地址转发&#xff0c;但需要路由表来记录。 交换机&#xff08;switch&#xff09;是二层设备&#xff0c;网桥&#xff08;switch&#xff09;也是二层设备&#xff0c;这两个都是基…

SegFix:预测边界和预测方向来修正边界

论文标题&#xff1a;SegFix: Model-Agnostic Boundary Refinement for Segmentation 论文地址&#xff1a;https://arxiv.org/pdf/2007.04269.pdf 代码地址&#xff1a;https://github.com/openseg-group/openseg.pytorch 两种loss监督 八种方向变回归问题为分类问题 代码地…

洛谷 P6136:【模板】普通平衡树(数据加强版) ← Splay树模板题

【题目来源】https://www.luogu.com.cn/problem/P6136【算法分析】 Splay 树简介及代码模板&#xff1a;https://blog.csdn.net/hnjzsyjyj/article/details/138504578【代码一&#xff1a;含 pushdown() 函数版本】 ● 本代码为洛谷 P6136 代码。题目来源为&#xff1a;https:…

PyQt6--Python桌面开发(1.安装配置环境)

一.PyQt6简介 PyQt&#xff1a;PyQt是一个功能强大且成熟的GUI框架&#xff0c;基于Qt库。它提供了丰富的组件、布局和主题选项&#xff0c;以及强大的功能和灵活性。PyQt的优点是它具有现代化的外观和丰富的功能&#xff0c;适用于复杂的GUI应用程序。然而&#xff0c;由于Py…

openEuler 22.03 GPT分区表模式下磁盘分区管理

目录 GPT分区表模式下磁盘分区管理parted交互式创建分区步骤 1 执行如下步骤对/dev/sdc磁盘分区 非交互式创建分区步骤 1 输入如下命令直接创建分区。 删除分区步骤 1 执行如下命令删除/dev/sdc1分区。 GPT分区表模式下磁盘分区管理 parted交互式创建分区 步骤 1 执行如下步骤…

明火检测实时识别报警:视觉算法助力安全生产管理

背景与现状 在各种工作、生产环境下&#xff0c;明火的存在往往是潜在的安全隐患。无论是加油站、化工园区、仓储场所还是校园&#xff0c;明火一旦失控就会引发火灾&#xff0c;造成严重的人员伤亡和财产损失。传统的明火检查手段主要依赖于人工巡查和定期的消防检查&#xf…

什么是高级持续威胁(APT)

高级持续性威胁&#xff08;Advanced Persistent Threat&#xff0c;APT&#xff09;&#xff0c;又叫高级长期威胁&#xff0c;是一种复杂的、持续的网络攻击&#xff0c;包含三个要素&#xff1a;高级、长期、威胁。 【高级】是指执行APT攻击需要比传统攻击更高的定制程度和…

预处理器标识#error的目的是什么?

在C和C编程语言中&#xff0c;预处理器标识#error是一个指令&#xff0c;它的目的是在编译过程中生成一个错误信息。当预处理器遇到#error指令时&#xff0c;它会停止编译过程&#xff0c;并显示#error后面的消息作为错误信息。这个指令通常用于确保某些条件在编译时得到满足&a…

人体姿态估计学习

人体姿态估计 1.绪论 人体姿态估计是计算机视觉中一个很基础的问题。从名字的角度来看&#xff0c;可以理解为对“人体”的姿态&#xff08;关键点&#xff0c;比如头&#xff0c;左手&#xff0c;右脚等&#xff09;的位置估计。 一般我们可以这个问题再具体细分成4个任务&…

小米手机短信删除了怎么恢复?这里教你快速解决!

手机已经成为我们生活中不可或缺的一部分&#xff0c;比如小米手机。我们通过手机进行通讯、娱乐、学习等各种活动&#xff0c;其中&#xff0c;短信是我们日常生活中的重要信息来源之一。然而&#xff0c;我们可能会不小心删除了一些重要的短信&#xff0c;这时候我们就会想知…

领航法律科技,法大大多年深耕再获认可!

近日&#xff0c;“乘势破局 第八届新兴法律服务业高峰论坛”在上海隆重举行。作为国内领先的电子签厂商&#xff0c;法大大凭借在法律科技领域的多年深耕与沉淀&#xff0c;荣获“法律科技领航机构”称号。 据悉&#xff0c;新兴法律服务业高峰论坛作为国内首个聚焦“新兴法律…

高等数学笔记(下中)

曲线积分 第一类曲线积分&#xff1a;对弧长的积分计算方法 定理&#xff1a;设 f ( x , y ) f(x,y) f(x,y)在曲线弧 L L L上有定义且连续&#xff0c; L L L的参数方程是 { x φ ( t ) y ψ ( t ) ( α ≤ t ≤ β ) \begin{cases} x\varphi(t)\\ y\psi(t) \end{cases}(\a…

一文了解什么是SSL证书?——值得收藏

SSL证书&#xff0c;全称Secure Sockets Layer证书&#xff0c;是一种网络安全协议的实现方式&#xff0c;现在通常指的是其继任者TLS&#xff08;Transport Layer Security&#xff09;证书&#xff0c;不过习惯上仍称为SSL证书。它的主要作用是确保互联网上的数据传输安全&am…

WebStorm2024版 将项目上传到gitee

目录 一、准备 WebStorm gitee 二、上传代码到Gitee 三、过程中遇到的问题 报错&#xff1a;You may want to first integrate the remote changes (e.g., git pull ...) before pushing again. 报错&#xff1a;fatal: refusing to merge unrelated histories 报错&a…

机器人系统ros2-开发实践05-ROS2 中 tf2的定义及示例说明

1. what ros2 tf2 &#xff1f; tf2的全称是transform2&#xff0c;在ROS&#xff08;Robot Operating System&#xff09;中&#xff0c;它是专门用于处理和变换不同坐标系间位置和方向的库。这个名字来源于“transform”这个词&#xff0c;表示坐标变换&#xff0c;而“2”则…

如何判断代理IP质量?

由于各种原因&#xff08;从匿名性和安全性到绕过地理限制&#xff09;&#xff0c;代理 IP 的使用变得越来越普遍。然而&#xff0c;并非所有代理 IP 都是一样的&#xff0c;区分高质量和低质量的代理 IP 对于确保流畅、安全的浏览体验至关重要。以下是评估代理 IP 质量时需要…

上升实用的Chrome浏览器命令

Chrome浏览器提供了一系列实用的命令行参数&#xff0c;这些参数可以在启动浏览器时使用&#xff0c;或者在Windows系统上通过命令提示符或PowerShell使用。以下是一些常用的Chrome浏览器命令&#xff1a; 1. **-incognito**&#xff1a;打开一个新的隐身窗口。隐身模式下&…