双非二本找实习前的准备day6

2024-03-04 14:36
文章标签 双非 实习 准备 day6 二本

本文主要是介绍双非二本找实习前的准备day6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习目标:

每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目3道算法(时间充足可以继续),背诵的八股的问题也在这里记录了

今日碎碎念:

1)偶尔还是贪玩游戏,但是进度有在往前,八股计划准备这些,计网,JVM,JUC,Java基础与集合,MySQL,Redis,Spring和Spring Boot,整体下来,热门的能准备到70%就开投。

2)昨天周日,休息一天。

3)哎还有科三科四没考,只能约到3月15号的,刚好一边准备面试。

4)简历修改完毕


力扣刷题

SQL

力扣1280:1280. 学生们参加各科测试的次数

解答思路:

        1)这道题其实有点难度

        2)首先我们得清楚,科目表跟考试表不一定是对应的,也就是说,可能我有四个科目,但是我只有三门考试,因此我们得先按照学生表和科目表,将所有的可能的组合结果查询出来,这里就得使用Cross join交叉查询

        3)其次,我们得找到考试表里面每位学生参与的考试科目以及该科目的考试次数,以学生id和科目来分组,才方便计算每位学生参与当前科目考试的次数,count(*)即可

        4)然后,我们要展示所有的科目,将前面交叉查询出来的结果要和考试表进行连接查询,而如果某些科目不在考试科目表中的话,说明查询结果是NULL,因此此时我们要使用一个函数IFNULL来检测是否为空,为空我们需要将结果置为0

        5)最后,根据学生id和科目名进行排序

select s.student_id,s.student_name,sub.subject_name,IFNULL(g.attended_exams,0) as attended_exams
from Students as s
cross joinSubjects as sub
left join (select student_id,subject_name,count(*) as attended_examsfrom Examinationsgroup by student_id,subject_name
) as g
ON s.student_id = g.student_id AND sub.subject_name = g.subject_name
ORDER BY s.student_id, sub.subject_name;

力扣570:570. 至少有5名直接下属的经理

解答思路:

        1)这题要做出来是简单的,自连接加having即可

# 很明显这是一个自连接的查询
select e1.namefrom Employee as e1inner join Employee as e2on e1.id != e2.id and e1.id = e2.managerIdgroup by e1.idhaving count(*) >= 5

另一个做法

        1)首先查询每个人的下属员工数。将两份 Employee 表用 join 操作连接。Manager 表代表经理,Report 表代表下属,每对 Manager.Id=Report.ManagerId 的情况代表此经理的一名下属。再根据 Manager.Id 分组,对 Report.Id 求和得到每个经理对应的下属数量。

        2)然后where筛选即可

select Name
from (select Manager.Name as Name, count(Report.Id) as cntfromEmployee as Manager join Employee as Reporton Manager.Id = Report.ManagerIdgroup by Manager.Id
) as ReportCount
where cnt >= 5作者:力扣官方题解
链接:https://leetcode.cn/problems/managers-with-at-least-5-direct-reports/solutions/2366332/zhi-shao-you-5ming-zhi-jie-xia-shu-de-ji-syvu/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


力扣1934:1934. 确认率

解答思路:

        1)这道题我认为对我很有价值,训练到了之前提到的几点:

                1.1)函数:round,sum,count

                1.2)左连接

                1.3)子查询

                1.4)分组

                1.5)行列转换

        2)解释一下我做这道题的思路:

                2.1)首先要求确认率,那么得先清楚某个用户发消息的总数是多少,确认到的消息有多少

                2.2)题目中给了两个表,一张用户注册表,一张用户确认信息的表,我们得搞清楚一个点,用户注册,不一定会接受信息,因此极有可能,用户表里面的id可能不一定会出现在信息确认表里面,即如果用户表id有12345,而确认信息表里面可能只会出现id为123的用户的消息确认情况

                2.3)那么我们得使用连接才能解决,我这里使用左连接,将用户id查询出来,这里我们按照用户id分组,便于统计每个用户的消息确认情况

                2.4)接下来如何查询到某个用户发消息的总数是多少,确认到的消息有多少呢?

                        2.4.1)行列转换里面,前两天的博客里面道1661. 每台机器的进程平均运行时间,这道题就有用到这样的思路,case 列名 when 内容是什么 then 显示的结果 end

                        2.4.2)然后使用IFNULL判断是否为空,为空我们就置为0

                        2.4.3)使用sum和count来得到结果即可

                2.5)将2.4的查询出来的作为结果,然后我们就可以去计算确认率了

                        2.5.1)直接使用round函数来限制精度即可

select res.user_id,round(res.confirmed / res.sum,2) as confirmation_ratefrom(select s.user_id,sum(IFNULL(case action when 'confirmed' then 1 end,0)) as confirmed,count(IFNULL(case action when 'confirmed' then 1 end,0)) as sumfrom Signups as sleft join Confirmations as con s.user_id = c.user_idgroup by s.user_id)as res

力扣1251:1251. 平均售价

解答思路:

        1)这道题其实也不难,左连接右连接都是可以的,这里注意一点就是,不要把日期判断放到where里面,否则会展示不出来左连接的部分内容

select p.product_id,IFNULL(round(sum(p.price * u.units) / sum(units),2),0) as average_pricefrom Prices as pleft join UnitsSold as uon u.product_id = p.product_idandp.start_date <= u.purchase_date and u.purchase_date <= p.end_dategroup by p.product_id

算法

力扣242:242. 有效的字母异位词

解答思路:

        1)看注释即可

class Solution {public boolean isAnagram(String s, String t) {int[] record = new int[26];for (int i = 0; i < s.length(); i++) {record[s.charAt(i) - 'a']++;     // 并不需要记住字符a的ASCII,只要求出一个相对数值就可以了}for (int i = 0; i < t.length(); i++) {record[t.charAt(i) - 'a']--;}for (int count: record) {if (count != 0) {               // record数组如果有的元素不为零0,说明字符串s和t 一定是谁多了字符或者谁少了字符。return false;}}return true;                        // record数组所有元素都为零0,说明字符串s和t是字母异位词}
}

力扣349:349. 两个数组的交集

解答思路:

       哈希表解决即可,用下标来代表元素也是很常见的操作
class Solution {public int[] intersection(int[] nums1, int[] nums2) {//简单点的做法就是使用哈希表,我们定义两个哈希表,然后去分别统计每个数组的元素有啥int[] hash1 = new int[1002];int[] hash2 = new int[1002];for(int i : nums1)hash1[i]++;for(int i : nums2)hash2[i]++;//新建立一个数组用来返回最终数据List<Integer> resList = new ArrayList<>();for(int i = 0;i < 1002;i++){//当两个表中有的元素就填入链表中if(hash1[i] > 0 && hash2[i] > 0){resList.add(i);}}int index = 0;//将链表里面的数据填入即可int res[] = new int[resList.size()];for(int i : resList)res[index++] = i;return res;}
}


力扣202:202. 快乐数

解答思路:

        1)如注释

class Solution {//我们要想到如何才能取出一个数的每一位?//基本上离不开取模以及×和÷public boolean isHappy(int n) {//同时题目提到可能会无限循环,即结果可能会一直重复出现,因此我们使用哈希来做Set<Integer> set = new HashSet();//因此,如果我们发现n不为1,并且n不在结果里面,就一直去判断while(n != 1 && !set.contains(n)){set.add(n);n = count(n);}return n == 1;}public int count(int n){//这个函数的作用就是取出每一位来平方int res = 0;while (n > 0) {int temp = n % 10;res += temp * temp;n = n / 10;}return res;}
}

八股

计算机网络

Java基础

        1.说一下Java的面向对象,对面向对象的理解

        2.JDK,JRE,JVM三者区别和联系

        3.深拷贝和浅拷贝区别了解吗,什么是深拷贝和浅拷贝?什么是引用拷贝?

        4.sleep和wait区别

        5.JAVA中几种基本数据类型是什么,各自占用多少字节?

MySQL

        1.执行一条select语句期间发生了什么

        2.如何处理慢查询

        3.MySQL的隔离级别有哪些?

Redis

        1.为什么要用Redis?

        2.Redis为什么快?

        3.Redis与memcached相对有哪些优势?

        4.Redis常用的数据类型

这篇关于双非二本找实习前的准备day6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/773493

相关文章

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

第十章 【后端】环境准备(10.4)——Vagrant

10.4 Vagrant Vagrant 官网 Vagrant 镜像仓库 下载 安装 直接 install。 设置环境变量 Vagrant 默认将镜像保存在用户文件夹的 .vagrant.d 目录下,若用户文件夹在C盘,下载的镜像文件会大量占用C盘空间。设置环境变量 VAGRANT_HOME 后,Vagrant 会将镜像保存到环境变量指定的文件夹下。

OpenStack离线Train版安装系列—2计算节点-环境准备

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack离线Train版安装系列—1控制节点-环境准备

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack镜像制作系列1—环境准备

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

我在高职教STM32——准备HAL库工程模板(1)

新学期开学在即,又要给学生上 STM32 嵌入式课程了。这课上了多年了,一直用的都是标准库来开发,已经驾轻就熟了。人就是这样,有了自己熟悉的舒适圈,就很难做出改变,老师上课也是如此,排斥新课和不熟悉的内容。显然,STM32 的开发,HAL 库已是主流,自己其实也在使用,只不过更换库就意味着教学内容有很大变化,自己也就迟迟没有迈出调整这一步。现在,是时候做出变化了,笔者计划保持教学项

实习项目|苍穹外卖|day7

缓存菜品 1.根据原型进行需求分析与设计(接口文档) 2.根据接口设计DTO(redis数据类型选取) 3.编码controller-》service-》mapper @GetMapping("/list")@ApiOperation("根据分类id查询菜品")public Result<List<DishVO>> list(Long categoryId) {//判断缓存

ISP面试准备2

系列文章目录 文章目录 系列文章目录前言一.如何评价图像质量?二.引起图像噪声的原因三. ISP3.1 ISP Pipeline主要模块3.1.1坏点校正(Defect Pixel Correction, DPC)3.1.2黑电平校正(Black Level Correction, BLC)3.1.3镜头校正(Lens Shading Correction, LSC)3.1.4去马赛克

【Unity面经】实习篇:面试官常问的一百个面试题

👨‍💻个人主页:@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 专栏交流🧧🟥Unity100个实战基础✨🎁🟦 Unity100个精华一记✨🎁🟩 Unity50个demo案例教程✨🎁🟨 Unity100个精华细节BUG✨🎁🟨 Unity100个面试题✨🎁 文章

腾讯面试准备

hash、map、dict区别 右值引用 虚函数和纯虚函数 虚表 运算符重载 epoll和select es原理 一面 waf运行在nginx哪一个阶段nginx后台连接超时是否会再连接 估计是max_fails, fail_timeouttcp黏包?大数据求中位数 需要注意的问题 数据库分布式数据库分表数据库拆表大数据读取数据库查询优化等等数据库相关问题