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

2024-03-01 03:12
文章标签 双非 实习 day3 准备 二本

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

学习目标:

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

今日碎碎念:

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

2)明天是MySQL和Redis的八股部分。

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

4)项目还得优化一两道,简历还会再修改几次。


力扣刷题

SQL

力扣1789:1789. 员工的直属部门

解答思路:

        1)这道题很有意思啊,我觉得也是练习分组和子查询很好的一道题,咱看注释就好了

# 值得注意的就是题目中提到的如果只加了一个部门,虽然primary_flag是N但是也是直属部门
# 也就是说,当count(department_id) = 1 的时候表示是直属部门
# 因此需要先找到primary_id为Y的
# 然后按照员工id分组,我们得查出哪些只加入了一个部门的员工,很明显这是一个子查询select employee_id,department_idfrom Employeewhere primary_flag = 'Y'oremployee_id in (select employee_idfrom Employeegroup by employee_idhaving count(department_id) = 1)

力扣607:607. 销售员

解答思路:

        1)本道题别给那么多张表吓到就好了,其实理清楚思路就行,反推着写

        2)要找没有向RED公司销售过的员工名字,就得先找到员工ID

        3)要找到符合的员工ID,就得先找到在Orders表里面的和RED的ID有关的员工ID

        4)要找到Orders表里面的和RED的ID,就得先对着RED这个公司名字去找ID

# 多表查询,要求我们查出没有向RED公司销售过的员工名字
# 因此得先解决如何查询到向RED公司销售过的员工的名字,我这里命名为结果集A
# 但是再大前提就是,得先找到RED的com_id是什么
# 然后拿着SalesPerson表中的sales_id来判别即可,即不在结果集A中的就是答案
select SalesPerson.namefrom SalesPersonwhere SalesPerson.sales_id not in(select sales_idfrom Orderswhere com_id = (select Company.com_idfrom Companywhere Company.name = 'RED'))

算法

力扣707:707. 设计链表

解答思路:

        1)看注释即可

class MyLinkedList {class ListNode{int val;ListNode next;ListNode(){};ListNode(int val){this.val = val;}}//记录元素个数int size;//虚拟头节点ListNode head;//初始化链表public MyLinkedList() {size = 0;head = new ListNode(0);}public int get(int index) {//如果下标无效就返回-1if(index >= size || index < 0){return -1;}//查找指定下标的元素ListNode tmp = head;//因为是获取下标的元素,超过下标后的无需再查找了//等于是因为我们有虚拟头节点for(int i = 0 ; i <= index ; i++){tmp = tmp.next;}return tmp.val;}//头插法public void addAtHead(int val) {//调用addAtIndexaddAtIndex(0,val);}//尾插法public void addAtTail(int val) {//调用addAtIndexaddAtIndex(size,val);}//在这里实现头插,尾插,普通插入public void addAtIndex(int index, int val) {//过滤不符合位置的下标if(index > size){return;}//index小于0if(index<0){index = 0;}//插入后,数量增加size++;//我们通过前驱节点来插入元素(利用虚拟头节点)ListNode pre = this.head;//找到指定位置for(int i = 0;i < index;i++){pre = pre.next;}//new新节点ListNode newNode = new ListNode(val);//插入节点就是将原来的节点往后移newNode.next = pre.next;pre.next = newNode;}public void deleteAtIndex(int index) {//过滤无效下标if (index < 0 || index >= size) {return;}//数量1size--;if (index == 0) {head = head.next;return;}//移动到指定位置ListNode pre = head;for(int i = 0; i < index ; i++){pre = pre.next;}pre.next = pre.next.next;}
}/*** Your MyLinkedList object will be instantiated and called as such:* MyLinkedList obj = new MyLinkedList();* int param_1 = obj.get(index);* obj.addAtHead(val);* obj.addAtTail(val);* obj.addAtIndex(index,val);* obj.deleteAtIndex(index);*/

力扣206:206. 反转链表

解答思路:

        双指针做法

        1)我自己在做这些链表题目的时候,都会画图(脑子里也可以),画图之后就不一定会那么抽象了,我个人感觉,链表题目的核心的就是,搞清楚指向问题,即搞清楚当前节点的下一个节点,前一个节点,到底是什么内容,我们需要将这两个节点变成啥才能达到我们想要的结果

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {//这里通过双指针来实现ListNode pre = null;ListNode cur = head;//涉及到交换,这里得再定义中间变量ListNode tmp = null;//从原链表来获取节点,拼接到新头节点上while(cur != null){//保存下一个节点tmp = cur.next;cur.next = pre;//移动指针pre = cur;cur = tmp;}return pre;}
}

递归做法
// 递归 
class Solution {public ListNode reverseList(ListNode head) {return reverse(null, head);}private ListNode reverse(ListNode prev, ListNode cur) {if (cur == null) {return prev;}ListNode temp = null;temp = cur.next;// 先保存下一个节点cur.next = prev;// 反转// 更新prev、cur位置// prev = cur;// cur = temp;return reverse(cur, temp);}
}

力扣24:24. 两两交换链表中的节点

解答思路:

        1)这道题跟反转链表其实也是一样的思路,推荐画出来做,做这种交换的题目你就这样想:

给你一个空瓶子,一瓶雪碧,一瓶可乐,要你把雪碧放到可乐瓶子里面,可乐放到雪碧瓶子里面去,那么肯定是将其中一个倒到空瓶子中先才可以

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {//不太擅长写递归,所以使用虚拟头节点 + 迭代来做public ListNode swapPairs(ListNode head) {ListNode dum = new ListNode(-1);dum.next = head;ListNode cur = dum;ListNode tmp = null;ListNode firstNode = null;ListNode secondNode = null;//要交换必须要保证有两个节点while(cur.next != null && cur.next.next != null){//先记录第三个节点tmp = cur.next.next.next;//记录第一个节点firstNode = cur.next;//记录第二个节点secondNode = cur.next.next;//交换cur.next = secondNode;secondNode.next = firstNode;firstNode.next = tmp;//指针移动cur = firstNode;}return dum.next;}
}

八股

计算机网络

TCP

1.TCP三次握手和四次挥手
2.TCP 如何保证传输的可靠性?
3.TCP和UDP的区别
4.TCP的三次握手中为什么是三次?为什么不是两次?四次?
5.TCP的四次挥手中为什么是四次?为什么不是三次?
6.TCP的拥塞控制是怎么实现的?
7.TCP流量控制和拥塞控制的区别
8.TCP如何实现流量控制

HTTP

1.常见状态码
2.从输入URL到页面展示到底发生了什么
3.GET和POST的区别是什么
4.HTTP和HTTPS有什么区别
5.Cookie和Session有什么区别

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



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

相关文章

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黏包?大数据求中位数 需要注意的问题 数据库分布式数据库分表数据库拆表大数据读取数据库查询优化等等数据库相关问题