双非二本实习前的准备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
学习目标: 每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目2-3道算法(时间充足可以继续),背诵的八股的问题也在这里记录了 今日碎碎念: 1)今天任务࿱…...
数据库自连接
力扣题目链接https://leetcode.cn/problems/employees-earning-more-than-their-managers https://leetcode.cn/problems/duplicate-emails/ 去重 select distinct… 数据库自连接通常在以下情况下需要使用: 层次关系查询:当表中的数据具有层次结构&…...
json 基本上面试题目比较常问
在面试中,关于JSON(JavaScript Object Notation)的题目通常涉及JSON的基本概念、使用场景、解析与生成、安全性等方面。以下是一些常见的JSON面试题目: 请解释什么是JSON? JSON是一种轻量级的数据交换格式,…...

Pytorch学习 day06(torchvision中的datasets、dataloader)
torchvision的datasets 使用torchvision提供的数据集API,比较方便,如果在pycharm中下载很慢,可以URL链接到迅雷中进行下载(有些URL链接在源码里)代码如下: import torchvision # 导入 torchvision 库 # …...

腾讯云学生服务器详细介绍_学生服务器价格_学生机申请流程
2024年腾讯云学生服务器优惠活动「云校园」,学生服务器优惠价格:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年,CVM云服务器2核4G配置842.4元一年&…...

虚拟化之内存(Memory)
一 内存的查看方式 free -k/m/h cat /proc/meminfodmesg |grep memory free命令的实质是根据meminfo中的文件来提取信息 二 内存虚拟化 1.概念:由于物理MMU只能通过Host机的物理地址进行寻址,所以实现内存虚拟化,关键是需要将Guest机的…...

ospf虚链路实验简述
1、ospf虚链路实验简述 ospf虚链路配置 为解决普通区域不在骨干区域旁,通过配置Vlink-peer实现不同区域网络设备之间建立逻辑上的连接。 实验拓扑图 r1: sys sysname r1 undo info enable int loopb 0 ip add 1.1.1.1 32 ip add 200.200.200.200 32 quit int e0/0/…...

全网最细,web自动化测试实战场景(滚动元素的滚动操作)直接上干g货......
前言 使用 selenium 进行 web 自动化测试对我们来说是个常规操作。用了很多次后,我们经常会抱怨 selenium 封装的操作实在是太少了。 比如说 selenium 没有对页面的滚动提供丰富 API , 有的只有一个孤零零的 location_once_scrolled_into_view 方法,把…...

Java特性之设计模式【过滤器模式】
一、过滤器模式 概述 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的…...

Linux设备模型(十) - bus/device/device_driver/class
四,驱动的注册 1,struct device_driver结构体 /** * struct device_driver - The basic device driver structure * name: Name of the device driver. * bus: The bus which the device of this driver belongs to. * owner: The module own…...

性能问题分析排查思路之机器(3)
本文是性能问题分析排查思路的展开内容之一,第2篇,主要分为日志1期,机器4期、环境2期共7篇系列文章,本期是第三篇,讲机器(硬件)的网络方面的排查方法和最佳实践。 主要内容如图所示:…...

PostgreSQL安装教程
系统环境 下载压缩包 下载压缩包 解压压缩包 查看解压文件 编译安装 编译 安装 用户权限和环境变量设置 创建用户 创建数据目录和日志目录 设置权限 设置环境变量 初始化数据库 数据库访问控制配置文件 postgresql.conf pg_hba.conf PostgreSQL启动与关闭 手…...
SLAM基础知识:前端和后端
在SLAM中前端和后端是被经常提到的一个概念。但是对于前端和后端的理解有着不同的看法,我的理解是: 前端:前端负责处理传感器数据,特征提取,进行状态估计和地图构建的初步步骤。 后端:后端接受不同时刻的里…...

一文彻底搞懂从输入URL到显示页面的全过程
简略版: 用户输入URL后,浏览器经过URL解析、DNS解析、建立TCP连接、发起HTTP请求、服务器处理请求、接收响应并渲染页面、关闭TCP连接等步骤,最终将页面显示给用户。 详细版: URL解析:浏览器根据用户输入的URL&#x…...

好书安利:《大模型应用开发极简入门:基于GPT-4和ChatGPT》这本书太好了!150页就能让你上手大模型应用开发
文章目录 前言一、ChatGPT 出现,一切都变得不一样了二、蛇尾书特色三、蛇尾书思维导图四、作译者简介五、业内专家书评总结 前言 如果问个问题:有哪些产品曾经创造了伟大的奇迹?ChatGPT 应该会当之无愧入选。仅仅发布 5 天,Chat…...
力扣题库第4题:移动零
题目内容: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 : 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 答案&…...
Java解决IP地址无效化
Java解决IP地址无效化 01 题目 给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。 示例 1: 输入:address "1.1.1.1" 输出…...

[数据结构初阶]队列
鼠鼠我呀,今天写一个基于C语言关于队列的博客,如果有兴趣的读者老爷可以抽空看看,很希望的到各位老爷观点和点评捏! 在此今日,也祝各位小姐姐女生节快乐啊,愿笑容依旧灿烂如初阳,勇气与童真永不…...
MySQL学习Day27——MySQL事务日志
事务的隔离性由锁机制实现,而事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。其中REDO LOG称为重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性,redo log是存储引擎层生成的日志,记录的是物理级别上的页修改操作,主要为了保证…...

ETAS工具链ISOLAR-AB重要概念,RTE配置,ECU抽取
RTE配置界面,包含ECU抽取关联 首次配置RTE,出现需要勾选的抽取EXTRACT 创建System System制作SWC到ECU的Mapping System制作System Data 的Mapping...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...