当前位置: 首页 > news >正文

双非二本实习前的准备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

学习目标&#xff1a; 每天2-3到简单sql&#xff08;刷完即止&#xff09;&#xff0c;每天复习代码随想录上的题目2-3道算法&#xff08;时间充足可以继续&#xff09;&#xff0c;背诵的八股的问题也在这里记录了 今日碎碎念&#xff1a; 1&#xff09;今天任务&#xff1…...

数据库自连接

力扣题目链接https://leetcode.cn/problems/employees-earning-more-than-their-managers https://leetcode.cn/problems/duplicate-emails/ 去重 select distinct… 数据库自连接通常在以下情况下需要使用&#xff1a; 层次关系查询&#xff1a;当表中的数据具有层次结构&…...

json 基本上面试题目比较常问

在面试中&#xff0c;关于JSON&#xff08;JavaScript Object Notation&#xff09;的题目通常涉及JSON的基本概念、使用场景、解析与生成、安全性等方面。以下是一些常见的JSON面试题目&#xff1a; 请解释什么是JSON&#xff1f; JSON是一种轻量级的数据交换格式&#xff0c…...

Pytorch学习 day06(torchvision中的datasets、dataloader)

torchvision的datasets 使用torchvision提供的数据集API&#xff0c;比较方便&#xff0c;如果在pycharm中下载很慢&#xff0c;可以URL链接到迅雷中进行下载&#xff08;有些URL链接在源码里&#xff09;代码如下&#xff1a; import torchvision # 导入 torchvision 库 # …...

腾讯云学生服务器详细介绍_学生服务器价格_学生机申请流程

2024年腾讯云学生服务器优惠活动「云校园」&#xff0c;学生服务器优惠价格&#xff1a;轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年&#xff0c;轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年&#xff0c;CVM云服务器2核4G配置842.4元一年&…...

虚拟化之内存(Memory)

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

ospf虚链路实验简述

1、ospf虚链路实验简述 ospf虚链路配置 为解决普通区域不在骨干区域旁&#xff0c;通过配置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 自动化测试对我们来说是个常规操作。用了很多次后&#xff0c;我们经常会抱怨 selenium 封装的操作实在是太少了。 比如说 selenium 没有对页面的滚动提供丰富 API , 有的只有一个孤零零的 location_once_scrolled_into_view 方法&#xff0c;把…...

Java特性之设计模式【过滤器模式】

一、过滤器模式 概述 ​ 过滤器模式&#xff08;Filter Pattern&#xff09;或标准模式&#xff08;Criteria Pattern&#xff09;是一种设计模式&#xff0c;这种模式允许开发人员使用不同的标准来过滤一组对象&#xff0c;通过逻辑运算以解耦的方式把它们连接起来。这种类型的…...

Linux设备模型(十) - bus/device/device_driver/class

四&#xff0c;驱动的注册 1&#xff0c;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)

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

PostgreSQL安装教程

系统环境 下载压缩包 下载压缩包 解压压缩包 查看解压文件 编译安装 编译 安装 用户权限和环境变量设置 创建用户 创建数据目录和日志目录 设置权限 设置环境变量 初始化数据库 数据库访问控制配置文件 postgresql.conf pg_hba.conf PostgreSQL启动与关闭 手…...

SLAM基础知识:前端和后端

在SLAM中前端和后端是被经常提到的一个概念。但是对于前端和后端的理解有着不同的看法&#xff0c;我的理解是&#xff1a; 前端&#xff1a;前端负责处理传感器数据&#xff0c;特征提取&#xff0c;进行状态估计和地图构建的初步步骤。 后端&#xff1a;后端接受不同时刻的里…...

一文彻底搞懂从输入URL到显示页面的全过程

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

好书安利:《大模型应用开发极简入门:基于GPT-4和ChatGPT》这本书太好了!150页就能让你上手大模型应用开发

文章目录 前言一、ChatGPT 出现&#xff0c;一切都变得不一样了二、蛇尾书特色三、蛇尾书思维导图四、作译者简介五、业内专家书评总结 前言 ​如果问个问题&#xff1a;有哪些产品曾经创造了伟大的奇迹&#xff1f;ChatGPT 应该会当之无愧入选。仅仅发布 5 天&#xff0c;Chat…...

力扣题库第4题:移动零

题目内容&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 : 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 答案&…...

Java解决IP地址无效化

Java解决IP地址无效化 01 题目 给你一个有效的 IPv4 地址 address&#xff0c;返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址&#xff0c;其实就是用 "[.]" 代替了每个 "."。 示例 1&#xff1a; 输入&#xff1a;address "1.1.1.1" 输出…...

[数据结构初阶]队列

鼠鼠我呀&#xff0c;今天写一个基于C语言关于队列的博客&#xff0c;如果有兴趣的读者老爷可以抽空看看&#xff0c;很希望的到各位老爷观点和点评捏&#xff01; 在此今日&#xff0c;也祝各位小姐姐女生节快乐啊&#xff0c;愿笑容依旧灿烂如初阳&#xff0c;勇气与童真永不…...

MySQL学习Day27——MySQL事务日志

事务的隔离性由锁机制实现,而事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。其中REDO LOG称为重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性,redo log是存储引擎层生成的日志,记录的是物理级别上的页修改操作,主要为了保证…...

ETAS工具链ISOLAR-AB重要概念,RTE配置,ECU抽取

RTE配置界面&#xff0c;包含ECU抽取关联 首次配置RTE&#xff0c;出现需要勾选的抽取EXTRACT 创建System System制作SWC到ECU的Mapping System制作System Data 的Mapping...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

CSS3相关知识点

CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...

使用homeassistant 插件将tasmota 接入到米家

我写一个一个 将本地tasmoat的的设备同通过ha集成到小爱同学的功能&#xff0c;利用了巴法接入小爱的功能&#xff0c;将本地mqtt转发给巴法以实现小爱控制的功能&#xff0c;前提条件。1需要tasmota 设备&#xff0c; 2.在本地搭建了mqtt服务可&#xff0c; 3.搭建了ha 4.在h…...

LangChain + LangSmith + DeepSeek 入门实战:构建代码生成助手

本文基于 Jupyter Notebook 实践代码&#xff0c;结合 LangChain、LangSmith 和 DeepSeek 大模型&#xff0c;手把手演示如何构建一个代码生成助手&#xff0c;并实现全流程追踪与优化。 一、环境准备与配置 1. 安装依赖 pip install langchain langchain_openai2. 设置环境变…...

循环神经网络(RNN):从理论到翻译

循环神经网络&#xff08;RNN&#xff09;是一种专为处理序列数据设计的神经网络&#xff0c;如时间序列、自然语言或语音。与传统的全连接神经网络不同&#xff0c;RNN具有"记忆"功能&#xff0c;通过循环传递信息&#xff0c;使其特别适合需要考虑上下文或顺序的任…...