- 博客(38)
- 资源 (11)
- 收藏
- 关注
原创 SQL语句简单优化
总结笔记1、避免使用‘*’,直接使用列名字在解析过程中,会将‘*’一次转化为所有的列名,并通过查询字典完成,消耗更多时间。2、多表查询时,尽量使用表的别名可以更加精确的定义到哪张表的哪个字段,也避免相同列名的产生的问题。3、Where子句中,把能快速缩小查询范围的语句放在最右边因为where子句中的语句,是按照从右往左的顺序执行。先把“=30”的找到,快速缩小了范围,然后再已经“=30”的范围里面找“>10”的范围。4、使用“≥”代替“>”如果使用“>3”,第一个找
2022-04-21 19:57:53
568
原创 Python自定义排序规则:functools.cmp_to_key()
Python自定义排序规则:functools.cmp_to_key()使用场景fuctools.cmp_to_key()是用来自定义排序规则,类似于C++中的lambada函数一样,使得sort()函数可以按照自己定义的比较规则进行排序。使用规则以剑指offer45题为例:def cmp(a, b): if a + b > b + a: return 1 elif a + b < b + a: return -1 else:
2022-03-26 20:13:34
4403
2
原创 Python语法易混淆
Python语法易混淆这一篇负责记录学习python基础语法时遇到的一些易混淆点,以及与C++语法不同的表达。字符串Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:变量[m:n]# m为截取开始位置的字符编号# n为从第一个字符开始数需要截取到第n个字符(包括第n个字符)'''str = "abcde"str[0:3] 输出:abcstr[1:3] 输出:bc'''列表Listlt = [];元组tuple列表使用方
2022-03-25 10:52:57
1452
原创 近四十场面试汇聚成的超全Web服务器面经总结
上期写了简历项目链接简历项目烂大街怎么办?教你最有谱的摆烂,有位读者照做以后,拿下了主管面,在群里宣传以后,最近多了不少小伙伴来催我更新服务器项目相关知识点。这份总结是我之前秋招的时候,根据每次面试的问题,不断查漏补缺总结而成,迭代了很多次。每次遇到新的问题,自己在网上边查边总结,当时主要是自己看嘛,也没有什么版权问题,但是现在要发在微信公众号这个公开平台,就需要追本溯源的查一查当初内容来源,尊重原作者的成果。我会尽量确认出处,如有侵权烦请告知!说在前面的话每个人服务器项目实现的功能不同,可以延伸的方
2022-01-11 17:08:12
11122
5
原创 CMU15-445:Lab1缓冲池管理器
Lab1缓冲池管理器概览实验的目标系统 BusTub 是一个面向磁盘的 DBMS,但磁盘上的数据不支持字节粒度的访问。这就需要一个管理页的中间层,但 Andy Pavlo 教授坚持不使用 mmap 将页管理权力让渡给操作系统,因此实验一 的目标便在于主动管理磁盘中的页(page)在内存中的缓存,从而,最小化磁盘访问次数(时间上)、最大化相关数据连续(空间上)。该实验可以分解为相对独立的两个子任务:维护替换策略的: LRU replacement policy管理缓冲池的: buffer p
2021-11-02 16:39:40
1822
1
原创 黑马——C++基础入门
抱歉很长时间没看了,才发现之前那篇C++基础入门被删掉了,在这里重新补上。大家加油啊!文末补上C++基础入门pdf版本,有需要自取,如果链接失效或者文章又被删了,记得私信我!C++基础入门1 C++初识1.1 第一个C++程序编写一个C++程序总共分为4个步骤创建项目创建文件编写代码运行程序1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w8id2.
2021-09-07 13:11:59
39514
13
原创 《剑指offer》第五章 39-52
第五章 优化时间和空间效率1. 时间效率字符串多次拼接时,不要多次使用String的+来拼接字符串,这样会产生很多string临时实例。更好地是用append方法完成字符串拼接。s1.append(s2)把字符串s2拼接到s1后面。查找:顺序查找需要O(n),排序数组需要O(logn),哈希表则是O(1)。剑指 Offer 39. 数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。输入: [1, 2,
2021-06-02 20:00:05
766
原创 《剑指offer》第四章 27-38
第四章 解决面试题的思路1.画图让抽象问题形象化剑指 Offer 27. 二叉树的镜像请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7 / \ / \1 3 6 9镜像输出: 4 / \ 7 &n
2021-05-28 19:08:06
429
原创 《剑指offer》第三章 16-26题解
第三章 高质量代码1.代码的完整性剑指 Offer 16. 数值的整数次方实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。输入:x = 2.00000, n = 10输出:1024.00000输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25初始解法:x*x重复n-1次。但这种情况下没有考虑n为负数和零。完整解法:应该对负数进行-操作,对于零应该抛出异常。
2021-05-24 11:12:46
637
原创 《剑指offer》第2章 03-15题解
第二章 面试需要的基础知识1. 数组剑指 Offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 排序后扫描复杂度O(nlogn)哈希表,空间复杂度O(n),时间复杂度O(n)原地哈希:有的元素多次重复,有的元素确实,使用原地哈希
2021-05-20 16:22:37
809
原创 B站杜老师数据库课堂笔记day03
MySQL day031、约束1.1、唯一性约束(unique)* 唯一约束修饰的字段具有唯一性,不能重复。但可以为NULL。* 案例:给某一列添加unique drop table if exists t_user; create table t_user( id int, username varchar(255) unique // 列级约束 ); insert into t_user values(1,'zhangsan'); insert into t_user val
2021-04-30 14:18:31
505
原创 B站杜老师数据库课堂笔记day02
MySQL day021、关于查询结果集的去重?mysql> select distinct job from emp; // distinct关键字去除重复记录。±----------+| job |±----------+| CLERK || SALESMAN || MANAGER || ANALYST || PRESIDENT |±----------+mysql> select ename,distinct job from emp;
2021-04-30 14:17:00
320
原创 B站杜老师数据库课堂笔记day01
MySQL1、sql、DB、DBMS分别是什么,他们之间的关系?DB:DataBase(数据库,数据库实际上在硬盘上以文件的形式存在)DBMS: DataBase Management System(数据库管理系统,常见的有:MySQL Oracle DB2 Sybase SqlServer...)SQL: 结构化查询语言,是一门标准通用的语言。标准的sql适合于所有的数据库产品。 SQL属于高级语言。只要能看懂英语单词的,写出来的sql语句,可以读懂什么意思。 SQL语句在执行的时
2021-04-22 10:49:01
571
2
原创 N皇后看回溯套路
这个讲回溯套路的不错我起初的思路以 4 皇后为例,我画出一个搜索树,初始时棋盘的格子都是"."。每一行,选一个格子置为"Q",一行行往下选,第一行有四种选择。在选下一行的皇后时,为了避免列的冲突,有三种选择。继续选下去,构建完整解,可能会遇到对角线冲突。遇到冲突,继续选下去没有意义,得不出合法的解。需要回溯。回溯的套路遍历枚举出所有可能的选择。依次尝试这些选择:作出一种选择,并往下递归。如果这个选择产生不出正确的解,要撤销这个选择(将当前的 “Q” 恢复为 “.”),回到之前的状态,
2021-03-13 11:37:20
335
转载 回溯算法
力扣题解中看到一个回溯算法讲的很清晰,记在这里。「回溯算法」与「深度优先遍历」都有 不撞南墙不回头 的意思。我个人的理解是:「回溯算法」强调了「深度优先遍历」思想的用途,用一个 不断变化 的变量,在尝试各种可能的过程中,搜索需要的结果。强调了 回退 操作对于搜索的合理性。而「深度优先遍历」强调一种遍历的思想,与之对应的遍历思想是「广度优先遍历」。与动态规划的区别共同点用于求解多阶段决策问题。多阶段决策问题即:求解一个问题分为很多步骤(阶段);每一个步骤(阶段)可以有多种选择。不同点动态规划只
2021-03-12 17:20:42
438
原创 计算机操作系统基础知识总结
进程与线程的区别进程:一个正在执行程序的实例,它有程序、输入、输出以及状态。(程序:用适当形式描述的算法)线程:运行在进程上下文中的逻辑流所有的线程都有完全一样的地址空间,共享相同的全局变量,所以一个线程甚至可以读、写、清除另一个线程的堆栈。所有线程还共享一个打开文件集、子进程、定时器以及相关信号。每个线程有自己的堆栈,供各个被调用但是还没有从中返回的过程使用。进程的状态、切换进程的状态运行态、就绪态(可运行,但因其他进程正在运行而暂时停止)、阻塞态(除非某种外部事件发生,否则进程不能运行)
2020-12-15 18:40:33
2645
原创 《深入理解计算机系统》数据在内存中的对齐方式
前言本部分内容是根据《深入理解计算机系统》这本书以及慕课网上南京大学袁春风老师的《计算机系统基础》课程,并针对豆瓣上《深入理解计算机系统》使用指南书评里面的应试内容进行的总结。数据在内存中的对齐方式...
2020-11-06 00:11:03
809
2
原创 《深入理解计算机系统》过程调用堆栈的使用情况
前言本部分内容是根据《深入理解计算机系统》这本书以及慕课网上南京大学袁春风老师的《计算机系统基础》课程,并针对豆瓣上《深入理解计算机系统》使用指南书评里面的应试内容进行的总结。过程调用参数传递递归过程循环调用与递归的区别...
2020-11-05 22:29:58
447
原创 《effective STL》文章收藏
迅速读懂《effective STL》参考博客链接收藏,方便后序查看条款1-10条款11-20条款21-30条款31-40条款41-50
2020-10-21 18:29:30
302
1
原创 递归问题套路
标题三道题套路解决递归问题递归解题三部曲何为递归?程序反复调用自身即是递归。我自己在刚开始解决递归问题的时候,总是会去纠结这一层函数做了什么,它调用自身后的下一层函数又做了什么…然后就会觉得实现一个递归解法十分复杂,根本就无从下手。相信很多初学者和我一样,这是一个思维误区,一定要走出来。既然递归是一个反复调用自身的过程,这就说明它每一级的功能都是一样的,因此我们只需要关注一级递归的解决过程即可。如上图所示,我们需要关心的主要是以下三点:整个递归的终止条件。一级递归需要做什么?应该返回给上一
2020-10-14 18:28:58
353
转载 C++:二维数组参数传递
1、二维数组在内存中的存储如果定义一个这样的二维数组int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};则其在内存中的表示可能下面这样的。由上图可以看出,在内存中二维数组是按照行主序进行存储的,从内存的角度上看,二维数组本质就是一个一维数组。如果把二维数组的每一行看成一个整体,即看成一个数组中的一个元素,那么整个二维数组就是一个一维数组。而二维数组的名字代表二维数组第0行的首地址(注意它是代表一行元素的首地址,而不是第0行第0列元素的首地址,虽然是相等
2020-09-21 12:02:13
3034
转载 C++:inline
1、引入 inline 关键字的原因在 c/c++ 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。下面我们来看一个例子:实例#include <stdio.h>//函数定义为inline即:内联函数i.
2020-09-19 19:10:01
284
转载 C++:初始化列表
C++:初始化列表参考链接:https://www.runoob.com/w3cnote/cpp-construct-function-initial-list.htmlhttps://blog.youkuaiyun.com/lws123253/article/details/80368047形式:与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段,每个初始化字段后面跟一个放在括号中的初始化式。class CExample {
2020-09-19 18:47:49
591
原创 《大话数据结构》——3.1顺序表相关操作
最近开始学习《大话数据结构》这本书,准备把里面的范例用C++敲一敲,以备后续复习,目前还是很菜很菜,尽量把子函数写清楚,主函数可能就考虑的不是那么周到了。#include <iostream>using namespace std;#include<vector>#include<algorithm>class myList{public: myList(int len);//初始化操作:构造函数 ~myList()//析构函数 { ...
2020-09-08 20:38:46
1554
2
转载 《黑马》——C++提高编程
前言**配套视频:https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=16795623907667609637只是为方便学习,不做其他用途,在此发布C++基础入门部分配套讲义,原作者为黑马程序C++提高编程本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用1 模板1.1 模板的概念模板就是建立通用的模具,大大提高复用性模板的特点:模板不可以直接使用,它只是一个框架模板的通用并不
2020-09-05 18:38:39
153705
20
转载 《黑马》——C++核心编程
前言:**配套视频:https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=16795623907667609637只是为方便学习,不做其他用途,在此发布C++基础入门部分配套讲义,原作者为黑马程序C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局
2020-09-05 18:35:50
220638
32
通讯录管理系统.zip
2020-08-04
802.15.4协议中文版部分.docx
2019-10-17
基于Labview的调制解调2ASK,2DPSK,2FSK,2PSK,AM,DSB,FM,PCM,
2018-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人