双非二本实习前的准备day8

2024-03-07 13:36
文章标签 双非 实习 准备 day8 二本

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

学习目标:

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

今日碎碎念:

1)今天任务:java基础八股(不贴出来了),集合源码,MySQL,Redis八股部分

3)目前简历修改完毕


力扣刷题

SQL

力扣1193:1193. 每月交易 I

解答思路:

        1)看注释即可

# 找出每年的每月,按每日期和国家分组
# 这里得用到日期函数DATE_FORMAT(trans_date, '%Y-%m'),可以把日期转换为指定格式
# 其余的就是按照题目提示来统计即可,使用之前学到的IF来判断
select DATE_FORMAT(trans_date, '%Y-%m') as month,country,count(*) as trans_count,sum(if(state = 'approved',1,0)) as approved_count,sum(amount) as trans_total_amount,sum(IF(state = 'approved', amount, 0)) AS approved_total_amountfrom Transactionsgroup by month,country

力扣1174:1174. 即时食物配送 II

解答思路:

        1)这道题我的首要思路就是,找到首次订单,那么就是找到订单日期最早的,因此可以使用MIN

        2)查出拥有首次订单的用户的id和订单日期后,将这个表作为子查询结果

        3)我们最后也只需要用到子查询的这两个列,因此where in(表)肯定是少不了的

        4)接下来就是判断是即时订单,还是计划订单即可

# 首先得找到首次订单,即找到订单日期最早的
select round(sum(order_date = customer_pref_delivery_date) * 100 / count(*) ,2) as immediate_percentage from Deliverywhere (customer_id,order_date) in (select customer_id,MIN(order_date)from Deliverygroup by customer_id)

力扣550:550. 游戏玩法分析 IV

解答思路:

        1)这道题的难点在于进行比例的计算,以及想到日期函数-->datediff函数的使用

        2)去看评论区大神的即可

        3)这里我就简单说两句:

                3.1)这种解法只需要找到首次登录日期,因为首次登录一定是唯一的,所以找到了首次登录的用户id以及日期,其实就相当于找到了玩家的总数了,省去了又查一次表然后distinct这种操作。

                3.2)接下来就是过滤数据,将查出来的首次登录表和Activity进行左连接,找到日期差为1的用户的数据,因为是左表连接查询,所以结果条数至少为左表条数;其实根本无需关心用户到底连续登录了几天,我只需要找到连续登录两天的数据即可。

                3.3)因此,将首次登录表与Activity表连接查询是再好不过的过滤方法,过滤条件如下即可on p.player_id = a.player_id and datediff(a.event_date,p.login) = 1

                3.4)最后一步就比较简单,如果找出来的天数是不连续的,那么结果就会显示为null,因此判断一下,是null就不计算即可

# 计算从首次登录日期开始至少连续两天登录的玩家的数量,然后除以玩家总数。
# 思考如何找出玩家总数
select round(sum(if(a.event_date is not null, 1, 0)) / count(*),2) as fractionfrom (select player_id,min(event_date) as loginfrom Activitygroup by player_id)as pleft join Activity as aon p.player_id = a.player_id and datediff(a.event_date,p.login) = 1

算法

力扣15:15. 三数之和

解答思路:

        1)看注释即可

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> result = new ArrayList<>();//排序Arrays.sort(nums);//开始找三元组for(int i = 0;i < nums.length;i++){//排序后是递增的数,如果三元组的第一个选数已经大于0了,说明没符合要求的if(nums[i] > 0){return result;}if (i > 0 && nums[i] == nums[i - 1]) {  // 去重a// 比如一个数组,-1,-1,0,1// 此时就需要这一步来去重continue;}//去找其余两个int left = i + 1;int right = nums.length-1;while(left < right){//求出当前三元组和int sum = nums[i] + nums[left] + nums[right];//如果和大于0,说明right指针需要往左移动,加一个小的数才可能让总和为0if(sum > 0){right--;}//left同理else if(sum < 0){left++;}//如果是为0,则记录else{result.add(Arrays.asList(nums[i], nums[left], nums[right]));// 记录完之后发现各自可能会跟附近产生重复的三元组,进行去重// 去重逻辑应该放在找到一个三元组之后,对b 和 c去重while (right > left && nums[right] == nums[right - 1]) right--;while (right > left && nums[left] == nums[left + 1]) left++;//指针移动,准备进入下一轮right--; left++;}}}return result;}
}


力扣383:383. 赎金信

解答思路:

       1)本题比较简单,哈希表来做即可

class Solution {public boolean canConstruct(String ransomNote, String magazine) {// shortcutif (ransomNote.length() > magazine.length()) {return false;}int[] cnt = new int[26];for(int i = 0;i < magazine.length();i++){cnt[magazine.charAt(i) - 'a'] ++;}for(int i = 0;i<ransomNote.length();i++){int j = ransomNote.charAt(i) - 'a';cnt[j]--;if(cnt[j] < 0){return false;}}return true;}
}


八股

计算机网络

Java基础

        1.String,StringBuffer和StringBuilder的区别

        2.String为什么不可变

        3.String类能被继承吗?为什么?

        4.Integer和int的区别?为什么要设计封装类?

        5.谈谈对hashCode和equals方法的理解,什么时候需要重新实现这俩方法,重写equals为什么要重写hashCode

MySQL

        1.不可重复读和幻读有什么区别?

        2.MVCC的实现原理?

        3.什么是聚集索引和非聚集索引

Redis

        1.什么是缓存击穿?缓存穿透?缓存雪崩?

        2.如何确保缓存与数据库双写时的数据一致性

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



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

相关文章

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