自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【剑指offer12】矩阵中的路径 3/31

【剑指offer12】 矩阵中的路径题目描述题解利用DFS和剪枝来操作找到每一个可能出现的字符串,注意是要对每一个字符进行DFS具体实现

2021-04-01 16:15:59 121

原创 随机数和随机数种子

随机数60~100的随机数:score = rand()%41+60随机数在执行的每一次改变main函数中加随机数种子srand((usigned int)time(NULL));包含ctime头文件

2021-03-19 09:36:39 275

原创 C++ 深浅拷贝遇到的问题

C++深浅拷贝什么时候使用深拷贝?当class中有指针成员的时候,构造函数中使用new在堆区中开辟内存,就得在析构函数中使用delete释放内存。使用深拷贝可以保证堆区开辟的数据不会被析构函数重复释放多次而造成内存泄漏。使用深拷贝需要注意什么?使用深拷贝时,如果指针不为NULL(构造函数已经将变量初始化),就应该先将指针置为空,再做深拷贝操作。拷贝构造函数调用的时机是什么?使用一个创建完毕的对象来初始化一个新对象Person p2(p1);值传递的方式给参数传值void test(Pe

2021-03-18 21:37:37 209

原创 【剑指offer】07 重建二叉树 3/15

【剑指offer】07 重建二叉树题目描述 题解函数的变量初始化Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};C++中可以将函数写在结构体中,类似于构造函数,直接使用TreeNode(x)可以初始化为val=x,left=null,right=n

2021-03-15 22:42:49 94

原创 【剑指offer】题解05.替换空格 3/14

【剑指offer】05.替换空格题目描述 准备知识C++STL库里replace并不像python一样可以随意替换,比如如题而言,使用“replace(’ ',"%20")”,但是string类里可以将单个字符替换由于string类里可以将单个字符替换,考虑到先扩展s的长度,使用 双指针法,复制需要替换的字符串...

2021-03-14 10:34:55 65

原创 【剑指offer】题解04 二维数组中的查找 3/13

【剑指offer】题解04 二维数组中的查找题目描述 预备知识方法一(暴力):STL中vector二维数组的遍历for(int i=0;i<matrix.size();i++)for(int j=0;j<matrix[i].size();j++)方法二(线性遍历):从右上角开始遍历...

2021-03-13 15:44:01 60

原创 【剑指offer】题解03 3/11 数组中重复的数字

【剑指offer】第一篇题解题目描述备用知识数据结构:哈希表STL库:unordered_map解题思路:作者:i2everent-nashvlm 来源:力扣(LeetCode)(最优算法)原地置换

2021-03-11 22:50:27 50

原创 从C语言到JAVA

快捷键alt+/:检索相关词ctrl+/:设置注释双击行数:设置断点Math.XX:数学函数1.输入Scanner in = new Scanner (System.in);//前置语句,必须有int num = in.nextInt();//输入并赋值2.输出System.out.println();括号内:""内放置输出的词+输出的变量3.数组创建数组int[] number = new int[100];<类型>[]<数组名>=new<

2020-09-04 12:53:38 419

原创 PTA 习题2.2 数组循环左移

习题2.2 数组循环左移颠倒交换法算法描述:循环左移k位,把前面 0 到 k-1位置的数字首尾交换,把 k 到 len-1位置首尾交换,再把 0 到 len-1下标位置首位交换

2020-07-25 21:15:46 636

原创 《数据结构与算法》(浙大MOCC)2.4队列

2.3队列**类型名称:**队列(Queue)定义:具有一定操作约束的线性表(同堆栈)特点:只能在一端插入,另一端删除(分别在两端)操作:数据插入:入队列(AddQ)数据删除:出队列(DeleteQ)先来先服务(排队)先进先出:FIFO操作对象集:一个有0个或多个元素的又穷线性表操作集:长度为MaxSize的队列Q∈Queue,队列元素item∈ElementType(1)Queue CreatQueue( int MaxSize):生成长度为MaxSize的空队列(2)bool

2020-07-25 19:46:59 138

原创 《数据结构与算法》(浙大MOCC)2.3堆栈

2.3堆栈2.3.1堆栈的定义引:问题——电脑计算复杂顺序算术式的优先级中缀表达式:5+6/2-3*4后缀表达式(栈):5 6 2 / + 3 4 *-算法:当连续出现数字时,记住这个数字序列,遇到符号时取出离符号最近的两个数字运算,重复这个过程实现:管理一个序列,对该序列的主要操作是在序列的末尾插入元素和删除(取出)元素。堆栈(Stack)定义:可以认为是具有一定约束的线性表,插入和删除操作都作用在一个称为栈顶(Top)的位置。特性:数据插入(Push):压入栈;数据删除(

2020-07-24 22:53:31 151

原创 《数据结构与算法》(浙大MOCC)2.1线性表的定义与实现-广义表与多重链表

1.广义表(Generalized List)广义表与线性表的区别线性表和广义表都是由n个元素组成的序列,但是线性表的n个元素都是基本的单元素,而广义表既可以是单元素也可以是另一个广义表一般记为GList(a1,a2,a3…ai,ai+1…an)不适合采用顺序存储方式:广义表中的元素可以有不同的结构广义表中的结点情况(1)单元素,需要一个域来存储单元素的值;(2)广义表,需要有一个域来指向另一个链表广义表的数据结构typedef struct GNode * PtrToGNode

2020-07-24 20:49:29 148

原创 链表及其相关操作(C语言)

创建结构体定义结点的结构创建一个有哨兵结点的一个链表typedef struct NODE{ int calue; NODE*nextPtr; }storeNODE;typedef struct LIST{ storeNODE*head; storeNODE*tail; }storeLIST;创建一个有空结点的链表void add_node(storeLIST*index){ int num; scanf("%d",&num); index->

2020-07-21 11:23:09 105

原创 用递归的方法解决寻找中位数的问题

找出集合中的中位数方法:递归将大问题拆分成子问题step1:以集合的第一个元素x为基准step2:将集合分为两个子集,S1比x大,S2比x小step3:观察两个子集的元素数,若均为K-1(x为第k大数),那么x即为中位数step4:若子集的元素数不为K-1,则在数量大的子集里继续重复上述步骤ElementType FindKthLatgest(ElementType S[],int K){/*在S这个含有K个元素的集合中寻找中位数*/ ElementType S1[MAXSIZE],S

2020-07-15 22:46:37 1237

原创 数据结构-线性表的操作实现(数组+结构体)

线性表的顺序存储实现#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100#define ERROR -1 typedef int ElementType;typedef int Position;/*表示数组的整型下标,从0开始*/typedef struct LNode*List;struct LNode{ ElementType Data[MAXSIZE]; Position Last;}; List

2020-07-15 22:39:28 469 1

原创 C语言:枚举、结构和联合

1.枚举常量符号化用符号而不是具体的数字来表示程序中的数字const int red=0;const int yellow=1;const int green=2;枚举enum COLOR{RED,YELLOW,GREEN};枚举一种用户定义的数据类型,用关键字enum以如下语法来声明enum 枚举类型名{名字0…名字n};枚举类型名字不太真的使用,大括号内的名字是真正要用的,类型是int,值依次从0到n。需要排起来的常量值时使用枚举量可以作为值枚举类型可以跟上en

2020-07-14 21:59:42 166

原创 《数据结构与算法》(浙大MOOC)第1章 概论

1.1 引子clock工具的使用头文件:time.hclock()函数:捕捉从程序开始运行到clock()被调用时所消耗的时间单位:clock tick(时钟打点)数据类型:clock_t常数: CLK_TCK(CLOCKS_PER_SEC)表示:每秒钟的时钟打点数技巧:使程序多次运行,得到数量级的差别即可#include<stdio.h>#include<time.h>#include<math.h>clock_t start,st

2020-07-13 22:35:48 231

原创 离散数学:二分查找的时间复杂度分析

二分查找算法的最坏情况复杂度分析

2020-07-13 09:45:37 626

原创 《数据结构与算法》(浙大MOOC)1.4最大子列和

1.4 解决最大子列和问题的收获同一问题的不同算法可以带来时间和空间上的改进通常当算法的复杂度为O(n^2)时可以改进为O(nlogn。C语言中的三目运算符的应用return A>C?(A>B?A:B):(C>B?C:B);/*三目运算符的应用*/e.g.若满足A>C,则判断A>B是否成立,若成立返回A,否则返回B递归求算法的时间复杂度和空间复杂度算法的空间复杂度的具体求法(未解决)理由:几乎没有计算过空间复杂度,初步观察和时间复杂度差不多。

2020-07-12 23:18:30 170

空空如也

空空如也

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

TA关注的人

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