自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Mac 使用 git

明确场景:从github上clone别人的仓库到本地[git clone],并在本地进行修改,将修改后的项目文件更新到github上的仓库[git push]。具体步骤本地创建一个文件夹,表示我需要将仓库clone到此文件夹下。cd到该文件夹后使用git clone https://github.com/Scofield666/TestGitOnMac.git结果如下,此时仓库已被克隆到本地,是一个完整的文件夹进入该仓库文件夹,进行修改。修改后顺序执行:git add \*:将当前本地文

2021-01-22 21:13:28 588

原创 Mac Catalina 10.15.1 VSCode C++ 调试配置

由于Visual Studio for Mac 不支持C++,所以在此记录下使用VScode运行调试C++程序的步骤。首先打开存放程序的文件夹然后新建一个cpp文件,内容如下:然后需要新建两个配置文件,launch.json和tasks.json。1 首先在左侧的运行栏那边,创建launch.json文件依次如下图选择然后把文件内容改为:{ "version": "0.2.0", "configurations": [ { "t

2020-08-19 15:43:32 409

原创 二叉树题目合集【Python】

这篇文章记录了leetcode上目前遇到的二叉树的题目。110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1

2020-07-18 13:23:41 1300

原创 二叉搜索树合集【Python】

这篇文章记录了leetcode上目前遇到的二叉搜索树的题目,复习的时候可以和二叉树算法合集一块看。查700. 二叉搜索树中的搜索给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,给定二叉搜索树: 4 / \ 2 7 / \ 1 3和值: 2你应该返回如下子树: 2 / \ 1

2020-07-14 20:48:01 312

原创 原地哈希总结【Python】

一般情况下,我们使用哈希表解决的问题是「统计待查找的每项出现的次数」,实现方法是用Python中「字典」保存。需要借助额外的O(n)O(n)O(n)空间来保存这个字典。但是在一些题目中,明确要求「在不使用额外空间」的条件下实现,那么此时只能通过原地修改数组,来反映出原数组每项出现的次数。这就是「原地哈希」问题。所谓原地哈希,就是建立「数组中待查找的项」和「对应下标」的映射关系,然后把所有项都放到应该放的位置。这就可以通过查看「恢复后数组中的项」和「其下标」是否满足该映射关系,来间接得到每个项出现的次数。

2020-07-12 12:09:16 780

原创 Python置换操作浅析(a, b=b, a)【Python】

在C/C++中,交换两个数的常规方法有以下两种:借助临时变量tmp = aa = bb = tmp加法操作a = a + bb = a - ba = a - b但是在Python中,还有一种更简便的方法:a, b = b, a# 或 b, a = a, b这种方法在一般情况下可以很容易的完成变量交换,甚至在数组中一般情况也是成立的。但是这两天在刷Leetcode时, 题目:缺失的第一个正数,碰到了一个问题,在对数组中的两个值进行交换的时候,即将nums[i]和nums[nu

2020-07-08 23:53:15 1920

原创 区间问题合集【Python】

区间调度问题之重叠区间、区间合并以及求区间交集。解决区间问题的一般思路是先排序,再操作。关于排序方式的选择,不同的题型选择而不同的排序方式:对于重叠区间问题,往往是和贪心策略有关,因此根据右端点排序,维护end变量。用最少数量的箭引爆气球无重叠区间对于合并区间问题,习惯来说就是从左至右依次合并,因此根据左端点排序,维护一个res数组,每次从res中取最后一个区间的右端点作为比较的标准合并区间划分字母区间452. 用最少数量的箭引爆气球给定每

2020-07-02 16:24:40 1705

原创 滑动窗口算法技巧【Python】

这篇文章通过几道题目来总结滑动窗口算法的解题模板与技巧。直接给出滑动窗口解题的模板left, right = 0, 0win = []while right < len(s): win.append(s[right]) right += 1 while isValid(win): win.pop(0) left += 1 209. 长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如

2020-06-30 22:39:06 8570 1

原创 Python列表的赋值,浅拷贝和深拷贝详解【Python】

最近在刷leetcode的回溯题时,涉及到列表的拷贝,在此记录下列表拷贝的不同。下文的例子多数借鉴于https://www.cnblogs.com/dfc001/p/11526151.html1. 列表的赋值赋值主要是设定了一个变量的引用,赋值主要方式是通过等于号’=’。a = [1, 2, [3]]b = ab.append(4)print(a, id(a))print(b, id(b))输出结果[1, 2, [3], 4] 4457931016[1, 2, [3], 4] 445

2020-06-29 22:11:17 462

原创 回溯算法详解【Python】

这篇文章总结了到目前为止在leetcode上所遇到的回溯算法的题目,包括:生成全排列、求子集、指定路径和等等。回溯算法实际上是穷举的过程,代码的递归形式中主要体现为做选择和撤销选择,那么首先给出回溯算法的框架:result = []def _backtrace(选择列表nums, 路径pre_list): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 _

2020-06-29 14:20:08 5556 1

原创 二分查找详解【Python】

在此记录下二分查找的常用模板,包括查找指定数、查找左边界和右边界,以后解题就用这个模板。一、查找指定数(基本的二分搜索)def binarySearch(nums, target): left, right = 0, len(nums)-1 # 搜索区间两边为闭 while left <= right: # 注意停止条件,停止条件为[left, left+1] mid = left + (right - left) // 2 # 所有情况都写出来 if nums

2020-06-12 21:45:44 1159

原创 经典排序算法总结和对比【Python实现】

在此整理出几种经典的排序算法:插入排序:直接插入排序、折半插入排序、希尔排序交换排序:冒泡排序、快速排序选择排序:简单选择排序归并排序堆排序一、插入排序1. 直接插入排序介绍:将原始数组分成有序区[0, i-1]和无序区[i, n-1]两块,每次将无序区的第一个元素nums[i]和有序区的元素nums[i-1]~nums[0]从后往前比较,插入到有序区中合适的位置。复杂度:时间复杂度O(n2)O(n^2)O(n2),空间复杂度O(1)O(1)O(1)稳定性:不涉及到元素的交换,所

2020-06-12 15:34:39 373 1

原创 二叉树算法合集【python】【递归+非递归】

下面是整理的一些二叉树的常见问题,包括求最大最小深度、前中后序以及层序遍历的递归和非递归解法、由前中序序列构建树等。1. 求最大深度1.1 递归解法:非常清晰,递归逻辑即分别求左右子树高度,取大值加一即可 def maxDepth(self, root): if root is None: return 0 lefth = self....

2020-03-16 16:58:23 624

原创 数据库基本问题【面试必备】

1、一些基本概念候选健:能够唯一标识一个元组。在集合中可能有多个候选键,注意候选键也可能是多个属性的集合。主键:是候选键之一,选取它来组织关系外键:不是当前关系的候选键但却是另一个关系的候选键主属性:候选键中的任何一个属性非主属性:不包含在任一候选键中的属性2、完整性约束有哪些?数据库的完整性是指数据的正确性和相容性。数据的正确性是指数据是符合现实世界语义、反映当前实际状况的。数...

2020-02-27 19:48:12 773

原创 操作系统常见问题【面试必备】

整理操作系统中常见的知识点,面试问题1、进程和线程的区别和关系从基本单位来看,进程是系统进行资源分配和调度的基本单位,是对运行程序的封装;而线程则是CPU分配和调度的基本单位。从切换开销来看,进程切换开销比线程切换大。由于不同进程之间资源独立(占有独立的内存块),因此进程切换需要页表切换以及页调度操作;而线程共享进程内资源,因此线程切换只需要切换上下文(寄存器和栈信息)即可。线程是进程的...

2020-02-26 14:32:58 536

原创 清华软件学院2019年预推免面试机试总结

参加了清软的夏令营,时间记得很清楚6月1号的夏令营,夏令营和推免流程都是一样的:总共两天,上午报到注册签名之类的,夏令营还会有个开营仪式,下午就是机试了,时长3小时(夏令营四道题,九推三道题),环境就是VS。第二天上午分组面试(夏令营比较随意,就分了两组,每个人时间大概10分钟左右。推免的话比较正式,分了五组进行面试,一人20分钟),之后就没了。下面我主要是总结下九推的经历吧。初审推免,首先你...

2019-09-28 23:08:26 2780 3

原创 素数筛法【九度教程第51题】

题目描述:输入一个整数 n(2<=n<=10000),要求输出所有从 1 到这个整数之间(不包括1和这个整数)个位为 1 的素数,如果没有则输出-1。输入:输入有多组数据。 每组一行,输入 n。输出:输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。样例输入:100样例输出...

2019-04-19 15:04:59 359

原创 Anaconda中使用conda install出现PackagesNotFoundError【解决方法】

笔者在使用conda install安装指定包jieba时,出现了PackagesNotFoundError: The following packages are not available from current channels:- jiebaCurrent channels:-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/fr...

2019-04-18 14:24:39 16926 13

原创 括号匹配问题【九度教程第26题】

题目描述:在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$“标注,不能匹配的右括号用”?"标注.输入:输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母...

2019-04-15 11:14:57 2159

原创 FatMouse's Trade【九度教程第21题】

题目描述:FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean. The warehouse has N rooms. The i-th room contains J[i] pounds...

2019-04-14 13:15:45 385

转载 使用Latex制作精美简历【现成模板】

由于sharelatex与overleaf合并了,有了ovrleaf2.0版本,所以,我的简历基本都是通过最新版本overleaf制作的。我下面所说的sharelatex就是overleaf了。注意:我自己的overleaf里面已经保存好了一切!怕忘记了以后,我先告诉自己PS:知乎上的大佬关于用latex制作中文简历的内容,看得我头皮发麻。。。。puzzle。。还有各种CJK宏包的东西,也是...

2019-04-09 20:27:03 4364 3

原创 查找学生信息【九度教程第18题】

题目描述:输入N个学生的信息,然后进行查询。输入:输入的第一行为N,即学生的个数(N<=1000)接下来的N行包括N个学生的信息,信息格式如下:01 李江 男 2102 刘唐 男 2303 张军 男 1904 王娜 女 19然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:02030104输出:...

2019-04-09 00:20:00 604

原创 日期差值【九度教程第六题】

题目描述:有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天输入:有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出:每组数据输出一行,即日期差值样例输入:2011041220110422样例输出:11来源:2009年上海交通大学计算机研究生机试真题基本思路统一区间:解决这类日期区间问题有一个统一...

2019-04-08 12:24:35 523

原创 成绩排序【九度教程第二题】

题目描述:有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。输入:测试数据有多组,每组输入第一行有一个整数N(N<=1000),接下来的N行包括N个学生的数据。每个学生的数据包括姓名(长度不超过100的字符串)、年龄(整形数)、成绩(小于等于100的正数)。输出:将学生...

2019-04-08 01:38:22 396

原创 【动态规划】LCS算法 python

问题描述1求两字符串的连续最大公共子字符串(The Longest Common Substring)这个LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1的序列,其对应的位置就是最长匹配子串的位置。如图1所示,在对角线上,连续的1就代表了两字符串对应的位置连续相等。从该矩阵中...

2019-04-04 16:29:55 4766 1

原创 Pycharm新建项目如何不创建新的虚拟环境virtualenv【吐槽】

之前虽然一直用Pycharm,但是使用时候有困扰我很久的问题:每一个项目的工程文件都大的一批,不方便打包每次打开pycharm都要重新配置interpreter,我一直想使用anaconda中现有的虚拟环境,但是每次打开都要重新手动配置,很烦最近终于解决了这两个问题,开启了轻便使用pycharm的旅程。解决方法:查看文件夹为什么这么大,通过跟别人对比之后发现自己多了一个venv...

2019-04-02 20:24:21 11820

原创 Python Scrapy使用实例讲解

第一次完整使用scrapy框架,通过一个简单的实例来记录一下使用框架的基本步骤,希望自己越来越熟悉这个强大框架的使用。安装Scrapy我这边是搭配anaconda使用的,因此直接在创建的环境(名为py36)中使用conda install scrapy即可在此工作环境下面安装好scrapy此外,也可以直接pip install Scrapy入门案例首先明确总体的步骤:创建一个S...

2019-04-02 19:00:41 2518 1

原创 Python爬取动态网页实例讲解

笔者在做爬虫作业时,遇到了一个动态网页,分析代码网页源代码时因此就少了许多需要的元素。下面用一个实例来记录一下爬取动态网页的步骤。实例:股票定向爬虫这个实例目标是从东方财富网获取股票列表,然后根据股票列表逐个到百度股票获取个股信息,最后将结果存储到文件。基本也看的出来代码就是上面三个步骤。踩雷一开始没发现这是个动态网页,因为我在需要的信息上面直接右键检查,发现信息挺全的,但是代码会变一下,...

2019-03-30 23:10:57 12109 3

转载 利用Burpsuite密码爆破(Intruder入侵)

由于懒得自己写burp的使用,但是又怕忘记操作,因此一下内容转载来自 https://blog.csdn.net/weixin_38948797/article/details/79111566,其中排版内容稍有变化,其余均来自上述博客内容。暴力破解简介:暴力破解大致可以分为两大类,一类是基于Web表单的,另一类是基于服务协议(如 telnet、FTP、SSH等)。 基于服务协议的爆...

2019-03-26 17:14:10 5089 3

原创 Scrapy保存中文字符到json文件时编码设置

最近在根据(http://www.runoob.com/w3cnote/scrapy-detail.html)学习Scrapy时,遇到一个问题:使用scrapy crawl执行爬虫程序并导入一个json文件,此时可以看到,命令行窗口显示的保存内容是中文,但在打开导出的json文件时,其内容却显示为以\u开头的Unicode编码:之后查询相关资料后,发现有两个解决方法:执行爬虫命令时,加...

2019-03-21 10:39:44 1896 1

原创 GET 和 POST 的区别

两种最常用的 HTTP 方法是:GET 和 POST。在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。GET - 从指定的资源请求数据。从服务器端获取数据,不做增删改POST - 向指定的资源提交要被处理的数据。向服务器提交数据,如做增删改操作GET 方法请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:/test/dem...

2019-03-15 18:55:35 274

原创 【实例讲解】大端字节序和小端字节序区分方法

基本定义及区分方法计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。大端(big endian):在内存中,数据的高字节保存在内存的低地址中,而数据的低字节,保存在内存的高地址中。 (数据高字节-&gt;内存低地址)小端(little endian):在内存中,数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。...

2019-03-14 12:15:50 1629

原创 C语言 单引号和双引号的区别

笔者在编写C时,使用以下语句时出错:char *string= 'aaabbbcc';出错原因是[Error] invalid conversion from 'int' to 'char*' [-fpermissive]意思是从int到 char * 是非法的转换,这就意味着后面的字符串被程序认定为int型,实际上就是单引号和双引号的使用区别造成了这个错误。不同之处1、含义不同用...

2019-03-12 15:26:50 16794

原创 C语言中char s[] 和 char *s的区别

有关于这两者的区别,下面的来自Stack Overflow的解释非常清晰:http://stackoverflow.com/questions/1704407/what-is-the-difference-between-char-s-and-char-s-in-cThe difference here is thatchar *s = "Hello world";will place ...

2019-03-12 15:21:14 4870

原创 解决C++中[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]

#include&lt;stdio.h&gt;#include&lt;string.h&gt;int main(){ int substring(char* s, char a); char *string= "aaabbbcc"; //warning的原因是字符串常量存放在const内存区... //而字符串指针变量定义却是指向char型,稍微有点区别,但是不影响结果。 cha...

2019-03-12 15:10:22 25636 4

原创 C语言中break和continue的区别

break和continue在使用的时候总是模棱两可,也总是记不住且不敢用。在这里记录一下两者使用区别,以便以后复习使用。break语句结束本层循环,注意:只结束本层循环,立即跳出本层循环。满足结束条件后,break之后的语句不会执行。continue结束本次循环,注意:只结束本次循环,立即跳出本次循环。满足结束条件后,continue之后的语句不会执行。...

2019-03-12 14:51:44 1817

原创 [C语言][LeetCode][2]Add Two Numbers

Problems:You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers an...

2019-03-10 20:31:32 164

原创 C语言结构体中.和->的区别使用

C语言结构体中.和-&gt;的区别使用很多时候,在对结构体进行相应的编码时,时而发现是用点运算符( . ),时而是用箭头运算符( -&gt; );那么这两者之间的使用有什么区别么?直接看例子即可明白,实际上区别在于定义的是结构体指针还是结构体变量。typedef struct // 定义一个结构体类型:DATA{ char key[10]; // 结构...

2019-03-10 20:08:05 1863

转载 操作系统安全机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kangyucheng/article/details/78936249 操作系统的安全性表现物理上分离:要求进程使用不同的物理实体时间上分离:具有不同安全要求进程在不同时间运行逻辑上分离:要求进程...

2018-09-16 23:38:37 8447

转载 【转载】提高Ubuntu虚拟机运行速度

vmware虚拟机如何设置不当的话会造成运行速度慢,并影响主机运行,甚至会出现死机。一下是提高vmware虚拟机运行速度的几个技巧,文章来自:http://blog.csdn.net/shanzhizi/article/details/829...

2018-09-08 15:10:34 2072

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除