自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++编程详解:满二叉树中求两点的公共祖先节点

满二叉树中求两点的公共祖先节点题目:有一颗无穷大的满二叉树,其结点按照根节点一层一层地往右依次编号,根结点编号为1。现有两个节点a,b。设计一个算法求a和b点地最近公共祖先地编号。一、二叉树需要知道的知识根节点=孩子节点/2n层的最小节点和最大节点编号为(画图自己找一下规律):min=2^nmax=min*2-1;二、解题1.思路(1)确定节点a和b是在二叉树的哪一层,用reta和retb表示(2)将层数高的节点求根节点,直至节点a和b在同一层(3)判断是否是同一根节点2.解题代

2021-05-06 22:54:36 295

原创 Linux学习:进程概念

文章目录一、基本概念二、描述进行-PCB1. task_struct-PCB的一种2.task_struct内容分类三、进程执行1. 执行方式2. 进程切换与恢复(重要)一、基本概念1. 程序的一个执行实例,正在执行的程序等。2. 担当分配系统资源(CPU时间,内存)的实体。二、描述进行-PCB进程信息被放在一个叫做进程控制块的数据结构中,可以看作为进行属性的集合。1. task_struct-PCB的一种(1) 在Linux中描述进程的结构体叫做task_struct.(2) task.

2021-04-19 22:23:51 107

原创 Linux学习(3)---git:操作详解

git用来管理代码仓库,如GitHub仓库、码云等。 本博客主要介绍几个常用的git命令,如将远端仓库克隆到本地、上传代码以及删除代码。注意:对代码进行管理时,都是在自己[git clone]的仓库中进行操作!!!1.将远端仓库的代码克隆到本地git clone [url] --url指远程仓库的链接--打开想要克隆的仓库,找到如下链接进行git clone即可2. 仓库管理2.1 对将要上传的文件进行标记git add [文件名] ---对文件进行标记2.2 将标记的文件提交到本地

2021-03-28 13:48:04 102

原创 Linux学习(2):学会7个操作,轻松使用vim编辑器

文章目录前言一、vim的基本概念二、vim的7个基本操作(都是命令模式下)1.移动2.删除3.复制4.替换5.撤销6.更改7.跳三、vim底行模式的常用命令1.设置行号2.查找字符3.替换前言在Linux操作中难免会对一些文档进行编辑操作,本篇博客主要对vim编辑器常用的7个操作进行介绍,其中包括移、删、复、替、撤、更、跳,学会这些操作,可以大大提高编辑文档的效率。一、vim的基本概念vim是Linux中的一种文档编辑工具,它可以来编辑文档、写代码等功能。在vim中包含多种模式,但常用的有.

2021-03-26 14:41:27 96

原创 Linux学习(1)---基础命令详解

*本篇博客主要介绍一些Linux中的一些较为常见的基础命令,如cd、ls、cp等等。如下表所示是总结的一些常见的Linux基础操作指令。接下来对上表中的命令进行详细的介绍:1. ifconfig语法:ifconfig功能:查看当前电脑的网卡信息-可以用来获取电脑的ip地址,用xshell等的第三方软件进行连接操作。2. ls语法:ls [选项] [目录或文件]常用选项:ls -a --列出目录下的所有文件(包括隐藏文件)ls -l --列出文件的详细信息 简写为->l

2021-03-25 16:06:22 121 2

原创 C++基础知识:引用

引用(&)1 概念引用不是新定义的一个变量,而是给已存在的变量取了一个别名,它不会开辟内存空间,它和它引用的变量共用同一块内存空间。void Test(){ int a=10; // int& b; 报错,引用必须初始化 int& c=a; int& d=a; // 不会报错,一个变量可以有多个引用上图可得:a、c、d三个地址相同2 特性(1) 引用在定义时必须初始化。(2) 一个变量可以有多个引用。(3) 引用一旦引用一个实体,再不能引用其他

2020-11-16 00:06:55 55

原创 leetcode_面试题 02.04. 分割链表--双百简单思路

题目: 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前。如果链表中包含 x,x 只需出现在小于 x的元素之后(如下所示)。分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。思路:1.定义两个带头结点的链表,这里注意头节点的链表需要初始化,否则会报错!2.两个带头节点的链表,一个存放小于x的节点。另一个存放大于x和等于x的节点。3.遍历题目所给的链表,将其分类放到两个带头节点的链表中。4.最后将两个链表连起来,返回就可以。这里我定.

2020-06-21 20:30:09 148

原创 C语言简单思路实现:leetcode859. 亲密字符串

给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回false 。看了这道题有几个关键点:第一:只能交换俩字符第二:必须是能交换俩字符之后两个相同,不交换就相等返回false例如(“ab”“ab”),但是这里注意"abab""abab"这种类型是返回true的,因为aa或者bb可以互相交换。关于这道题,我的思路是这样的:1.先判断两个字符串长度是否相等,不相等直接返回false。(经过这一步,后面的条件默认是俩.

2020-05-14 13:01:29 254

原创 编程实现:leetcode_1162-- 地图分析

你现在手里有一份大小为 N x N 的「地图」(网格) grid,上面的每个「区域」(单元格)都用 0 和 1 标记好了。其中 0代表海洋,1 代表陆地,请你找出一个海洋区域,这个海洋区域到离它最近的陆地区域的距离是最大的。我们这里说的距离是 「曼哈顿距离」(> Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个区域之间的距离是 |x0 - x1...

2020-04-30 20:00:04 391

原创 编程实现:leetcode_565 数组嵌套

索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到并返回最大的集合S,S[i] = {A[i], A[A[i]],A[A[A[i]]], … }且遵守以下的规则。假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]…以此类推,不断添加直到S出现重复的元素。这道题我刚开始的思路是:将得到的S的元素保存起来,然后每得...

2020-04-27 16:46:42 203

原创 编程实现:删除最外层括号

这道题的难点是如何确定外层括号。我的方法是计数器的办法,当遇见 ‘(’ count1++;当遇见 ‘)’ count2 ++;当 count1=count2 时,说明 ‘(’ 数量和 ‘)’ 数量相等,这样就可以确定最外层括号了。我的代码中有三个变量i,j,a,i是用来记录最外层括号中的 '('的位置,j是用来记录最外层括号中的 ')'的位置,i和j都是便于字符串的左移来覆盖最...

2020-04-22 00:44:43 158

原创 strlen 理解库函数以及三种方式模拟实现

strlen是计算字符串长度的一个库函数,见到 ‘\0’ 停止。int main(){ char str1[] = "abcd"; char str2[] = { 'a', 'b', 'c', 'd' }; strlen(str1); strlen(str2);}这里str1的长度为4,但str2的长度为随机值。原因如下:str1在初始化的时候末尾有一个 ‘\0’,strlen...

2020-04-18 13:19:06 337

原创 详解:求Sn = a + aa + aaa + aaaa + aaaaa······的前n项之和,其中a是一个数字

这题的思路是:假设a=2,计算前3项之和,那么就是2+22+22第一项等于a第二项等于210+2第三项等于2210+2我们可以发现22等于第二项所以我们可以定义一个中间变量来c,c=10*c+a,就可以把前n项表示出来,然后求和就可以得出答案了。int main(){ int a = 0; int b = 0; int i = 0; int sum = 0; int c =...

2020-04-16 18:06:02 878

原创 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。

先将字符串逆序,然后将其分为两部分,例如abcdefg,逆序完为gfedcba,当n等于2时,将其分为两部分,第一部分为gfedc 第二部分为ba,然后第一部分和第二部分进行字符串逆序,就可得到答案。char* reverseLeftWords(char* s, int n){ int i = 0; int sz = strlen(s); for (i = 0; i < sz ...

2020-04-10 14:43:16 1449

原创 三子棋(入坑c接触到的第一个小游戏)

最近学c语言,学到三子棋这个小游戏。接下来我梳理一下自己的思路。首先我建立了三个空项目,一个是在头文件命名为game.h,用来存放函数声明,两个在源文件,命名分别为test.c和game.c,game.c用来存放test.c中game函数里面的函数。game.h中所存放的声明#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#in...

2020-03-20 20:37:53 119

空空如也

空空如也

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

TA关注的人

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