自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 头文件包含的重复定义+extern的使用

C++项目中,一般在.h文件中声明,在.cpp 文件中定义和实现。每个文件尽量只专注于做一个事情,比如定义一个类,进行封装,对外提供特定功能。一个大型项目中,只有一个main函数,来接收数据,处理业务逻辑,处理的过程需要借助其他文件中提供的方法,即include。而每个其他文件,也可能include其其他文件实现自己的方法,可以把include想象成,把别人的代码粘贴过来放在自己的代码中。include 的过程中,最恼人的就是包含的关系,比如A 包含B了,B包含C了,那其实,A 也包含C了,当A中有直接

2021-09-04 20:29:09 1069

原创 jupyter notebook使用anaconda 的方式下载安装(win10)修改工作目录

文章目录按照这篇文章进行操作,但是第五步,修改jupyter_notebook的路径,按照本文的方法操作。按照上文第五步,生成 jupyter_notebook_config.py ,并修改 jupyter_notebook_config.py 中 c.ServerApp.notebook_dir = r'D:\jupyter_note'。其中,r'D:\jupyter_note'是你设置的notebook 的工作目录,需要提前手动创建好。需要注意,在windows系统上,路径名称中有转义字符,在其他程

2021-05-11 16:58:08 192

原创 二叉树的三种遍历C++ 从简入模板

前序遍历递归void preorder(TreeNode *root, vector<int> &path){ if(root != NULL) { path.push_back(root->val); preorder(root->left, path); preorder(root->right, path); }}非递归前序遍历/** * Definition for a bi

2020-09-29 21:08:49 158

原创 牛客OJ笔试 C++ 输入输出

背景最近以及春招做笔试的时候发现,很多公司都用牛客网作为在线编程的OJ,这里需要自己做输入输出。因为牛客判题使用的方式是:不管输入,只将你程序的输出,和正确答案进行对比,有点像文本比对,有一点不一样,就会是不通过。比如 输出结尾不能/必须有空格,空行,逗号等特殊要求。今天根据牛客官网给出的练习做一下C++的输入输出总结。大家也可以去练下下~ 传送门:https://ac.nowcoder.com/acm/contest/56478-9-10是实战中经常用到的方式,比如输入数组,有多组,以逗号/空格分隔

2020-08-02 18:22:01 8532

原创 leetcode Path Sum 大礼包

文章目录前言112. Path Sum:easy113. Path Sum II-medium437. Path Sum III-easy如果你正在为刷leetcode而苦恼不已,算法上总觉得提升不了,那么不要慌张,不要气馁,因为很多人其实都和你一样,为easy题的通过而开心,为hard题的没思路而自暴自弃。但是请相信,只要你坚持,每天一遍又一遍的刷曾经刷过的题,寻找新的解题思路,总结问题的规...

2020-05-01 17:57:12 169

转载 C++ 关键字之 mutable

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无...

2020-04-18 16:14:34 391

转载 C++ 关键字之 const

转载来源文章目录简介用const 修饰函数的参数用const 修饰函数的返回值const 成员函数(const的作用:说明其不会修改数据成员)简介const 可定义常量。但 const 更大的魅力是它可以修饰 函数的参数、返回值,甚至函数的定义体。const 是 constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所...

2020-04-18 15:06:02 147

原创 选择问题:选出无序数组中的第k小的数(以排序顺序)

文章目录问题描述基本思路优化方法代码实现问题描述输入:A =[A0,A1,…,A_{n-1}],k < n输出:第 k 小的数(特例:中位数)基本思路将数组排序,然后访问第 k 个就是第 k 小复杂度主要是排序,最好也需要 O(nlogn)我们只需要找第 k 小,并不需要完全排序的一个结构,是否可以用一点排序的操作,就能找出来呢?优化方法Divide and C...

2020-03-27 12:14:12 366

原创 计算逆序数对&&重要逆序数对(significant inversion)

文章目录逆序数对简介计算逆序数对思路significant inversion 简介significant inversion 思路significant inversion 代码逆序数对简介数组中的两个元素A[i], A[j],如果下标 i < j,但 A[i] > A[j] ,称 A[i] 与 A[j] 为逆序数对计算逆序数对思路Divide and Conquer......

2020-03-26 23:09:21 909 1

原创 快速排序的来龙去脉 C++

文章目录快速排序简介快速排序步骤快速排序代码快速排序简介与归并排序是一个框架下的,快速排序也是Divid and Conquer 类的算法,只不过Divide 的时候不是以下标来划分(归并的做法),而是基于数组中的元素值与归并排序的不同在于此算法由 Sir Charles Antony Richard Hoare 于1962 年发明快速排序步骤快速排序代码...

2020-03-26 10:57:05 144

原创 归并排序 C++

目录归并排序思路归并排序实现归并排序思路Divide and ConquerA[0…n] = A[0…mid] + A[mid…n-1]mid 的划分方法可以用随机或者直接 1/2求原问题的排序,就是求子问题的排序,然后将子问题的解 merge性能不受输入数据的影响,始终为O(nlogn)归并排序实现#include<iostream>#include&lt...

2020-03-25 14:15:15 130

原创 插入排序 C++

目录插入排序的思路插入排序的C++实现插入排序优化思路插入排序的思路对 A[0…n-1] 排序,只需要将 A[0…n-2] 排好序,然后把 A[n-1] 插入到已排序数组的合适位置即可本质是基于Divid and Conquer 思路Divid 策略:基于元素下标A[0…n-1] = A[0…n-2] + 一个单独的元素A[0…n-2] 与 A[0…n–1] 有相同的结构,但是规...

2020-03-25 11:13:21 276

原创 基数排序

参考Radix Sort-GeeksforGeek基数排序另一种计数排序的方法思路将数组依次从低位(个位)到高位的顺序划分按照每一位的0-9十个数字对原数组进行计数排序/其他排序,负数则特殊处理时间:O(n*k),k是最大数字的位数,空间:O(n+k)#include<iostream>#include<stdlib.h>#include...

2019-12-02 21:33:46 114

原创 桶排序 C++

参考算法:排序算法之桶排序——链表实现Bucket Sort-GeeksforGeeks——vector实现桶排序确定桶的大小,个数对于大小,一般设置为元素个数,因为可能因为映射函数设计的不好,使得所有元素映射到同一个桶中二维数组的第二维可以用vector,也可以用链表,则不需要提前限定大小个数 bucket_n:(最大值-最小值)/元素个数,对于分布均匀的元素,则映射...

2019-11-29 17:13:02 1322 1

原创 计数排序 C++

知识点C++产生随机数算法系列-计数排序计数排序步骤数组开辟空间:计算大小,初始化遍历排序数组,对计数数组赋值遍历计数数组,对原数组排序时间:O(n),空间:O(m),m是最大值与最小值的差,可能是n#include<iostream>#include<stdlib.h>//随机数使用#include<time.h>#inclu...

2019-11-29 14:35:30 441

原创 leetcode-stack-easy-8

文章目录1021.Remove Outermost Parenthesessolution1-记录左括号个数,分割primitive串solution2-1047.Remove All Adjacent Duplicates In Stringsolution1-反向遍历,栈solution2-用string变相作为栈682.Baseball Gamesolution-辅助栈,字符串处理solut...

2019-08-28 19:12:10 138

原创 leetcode-LinkedList-easy-10题-题目+代码

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */876.Middle of the Linked List题目描述:Give...

2019-08-23 21:38:55 334

转载 负载均衡算法

本文讲述实现负载均衡的常用算法。转自https://blog.csdn.net/lihao21/article/details/54...

2019-07-25 11:31:42 131

原创 git Permanently added the RSA host key for IP... [email protected]: Permission denied (publickey).问题解决

[针对已经使用过github的新手,完全从0开始的请移步]本过程是在win7下使用git bash。今天重新开始使用git,发现不会用了,怎么也不能把本地的仓库push到远程的github库里面。试错过程如下with solution:$ git push origin masterWarning: Permanently added the RSA host key for IP add...

2019-04-09 11:21:42 1345

原创 写作业时遇到的一些小知识点

void*类型可以存储任何类型的指针,使用的时候强制转化成对应类型的指针便可。如:星(int星)a,意思是:把变量 a强制转换为int星型的指针变量,然后取其值。库函数 int sprintf(char *str, const char *format, ...)发送格式化输出到 str 所指向的字符串。int sprintf(char *str, const char *format,...

2019-04-08 19:12:34 260

转载 Java中JAVA_HOME, PATH,CLASSPATH的作用和配置值。

这三个变量都可以设置在系统变量中(右键我的电脑,属性,高级系统设置,环境变量(弹出的框中上面是用户变量,下面是环境变量))如图,点击新建之后,上面是变量名,如path,classpath,java_home。下面是变量的值。JAVA_HOME 的值是JDK的安装目录,C:\Program Files\Java\jdk1.8.0_92。运行Tomcat需要设置此变量。PATH:pa...

2019-03-23 11:40:06 8824

原创 solidity :外部可见性 & modfier & fallback

https://solidity.readthedocs.io/en/develop/contracts.html#visibility-and-gettersSolidity中有两类的function callinternal do not create an actual EVM call (also called a “message call”)external ones th...

2019-03-14 22:13:35 567

原创 输入输出流[标准输入输出,文件输入输出,字符输入输出(get(),getline())]

标准I/O对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。文件I/O以外存磁盘文件为对象进行输入和输出,即从磁盘文件输入数据,数据输出到磁盘文件。串I/O对内存中指定的空间进行输入和输出。通常指定一个字符数组作为存储空间(实际上可以利用该空间存储任何信息)。C++的I/O操作是类型安全(type safe)的编译系统对数据类型进行严...

2019-03-13 15:38:03 996

原创 C++格式控制输出

使用控制符控制输出格式这些控制符是在头文件iomanip中定义的,因而程序中应当包含iomanip。#include &amp;lt;iostream&amp;gt;#include &amp;lt;iomanip&amp;gt;//不要忘记包含此头文件using namespace std;int main(){int a; cout&amp;lt;&amp;lt;″input a:″; cin&a

2019-03-13 10:31:29 346

原创 多态性和虚函数

多态性:是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数。向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。静态多态性(编译时的多态性)在程序编译时系统就能决定调用的是哪个函数通过函数的重载实现的(运算符重载实质上也是函数重载)。动态多态性(运行时的多态性)...

2019-03-13 09:33:49 461

原创 类的继承

类的继承:一个新类从已有的类那里获得其已有特性类的派生:从已有的类(父类)产生一个新的子类类的继承是用已有的类来建立专用类的编程技术。单继承(single inheritance):一个派生类只从一个基类派生(树形结构)这一系列文章约定,箭头表示继承的方向,从派生类指向基类。多重继承(multiple inheritance):一个派生类有两个或多个基类派生类是基类的...

2019-03-12 22:21:05 231

原创 运算符重载

运算符重载重载函数的返回值和参数 一般是引用类型,为什么?点这里实质上是函数的重载。一般格式:函数类型 operator 运算符名称 (形参表列) { 对运算符的重载处理 }Complex operator+(Complex &amp;c2) {return Complex(real+c2.real, imag+c2.imag);}Complex c1(3,4),c2(5,-10)...

2019-03-12 17:12:13 1346

原创 类类型(下)——谭浩强cpp

构造函数对象的初始化:类的数据成员是不能在声明类时初始化的。如果一个类中所有的成员都是public的,则可以在定义对象时对数据成员进行初始化。如果类中有private或protected的成员,就不能用这种方法初始化。可以用成员函数来对对象中的数据成员赋初值。但是如果对一个类定义了多个对象,而且类中的数据成员比较多,那么,程序就显得非常臃肿烦琐。!为了解决这个问题,C++...

2019-03-12 11:52:19 286

原创 南京图灵研究院实习面试 记录

愿你被生活温柔以待,你也能经历生活的千姿百态。每一个第一次都值得记录,只不过曾经忽略过太多次。那就从今天开始吧~今天是我第一次参加 要工作的面试。也许是经历过很多的选拔过程,也可能是没有任何的期许(因为自己目前的能力是摆在眼前的,不想妄自抬高自己,想着一定要通过或者不通过会怎么着。只是想把这次经历当做一次检验自己这些天努力的机会。就想顺其自然吧)。整个过程只有进门前的三分钟紧张了一下。整个过...

2019-03-11 23:05:42 896

转载 链表中是否有环 & 返回链表开始入环的第一个节点

(1)给定一个链表,判断链表中是否有环:我们可以用快慢指针的方法解决这个问题。fast指针一次走2步,slow指针一次走1步,则当两个指针走一次时两个指针相差1步,走两次时相差2步,以此类推当走n次时fast指针与slow指针相差n步,每多走一次两个指针之间相差步数加1。若slow走n步入环,则此时fas...

2019-03-11 21:51:46 477

转载 strcat()与strncat()

&amp;amp;amp;amp;amp;lt;link rel=&amp;amp;amp;amp;quot;stylesheet&amp;amp;amp;amp;quot; href=&amp;amp;amp;amp;quot;https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css&amp;amp;amp;amp;quot;&amp;amp;amp;am

2019-03-11 21:48:45 659

原创 this 指针——谭浩强cpp

this指针是指向调用成员函数对象的指针所谓“调用对象a的成员函数f”,实际上是在调用成员函数f时使this指针指向对象a,从而访问对象a的成员。引子:每个对象中的数据成员都分别占有存储空间,如果对同一个类定义了n个对象,则有n组同样大小的空间以存放n个对象中的数据成员。但是,不同对象都调用同一个函数代码段。当不同对象的成员函数引用数据成员时,怎么能保证引用的是所指定的对象的数据成员呢?#...

2019-03-06 11:58:40 297

原创 类类型(上)——谭浩强cpp

对象:具备属性和行为这两种要素,对象之间通过发送和接收消息互相联系。在C++中,每个对象都是由数据和函数(即操作代码)这两部分组成。调用对象中的函数就是向该对象传送一个消息(message),要求该对象实现某一行为(功能)。封装性(encapsulation)一是将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,互不干扰。二是将对象中某些部分对外...

2019-03-06 08:27:28 493

原创 用户自定义类型— 结构体,共用体,枚举——谭浩强cpp(new/delete vs malloc/free)

用户自定义类型(user-defined type,UDT)结构体(structure)类型:在一个组合项中包含若干个类型不同(当然也可以相同)的数据项。下面的定义相当于一个模型,其中并无具体数据,系统也不为之分配实际的内存单元。在编译时,是不会为类型分配空间的,只为变量分配空间。struct 结构体类型名{成员表列};struct student{ string name...

2019-03-05 19:45:58 572

转载 c++ 中new 和 delete的使用方法

c++中new和delete的使用方法http://www.jb51.net/article/49537.htm对于计算机程序设计而言,变量和对象在内存中的分配都是编译器在编译程序时安排好的,这带来了极大的不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。对于不能确定需要占用多少内存的情况,动态...

2019-03-05 19:42:31 831

原创 指针,引用基本概念——谭浩强 cpp

在程序中一般是通过变量名来对内存单元进行存取操作的。其实程序经过编译以后已经将变量名转换为变量的地址,对变量值的存取都是通过地址进行的。直接存取方式,或直接访问方式:按变量地址存取变量值的方式间接存取(间接访问):可以在程序中定义这样一种特殊的变量,它是专门用来存放地址的。变量的指针:就是变量的地址。由于通过地址能找到所需的变量单元,因此可以说,地址指向该变量单元。因此将地址形象化地...

2019-03-05 10:42:27 525

原创 字符串基本概念 ——谭浩强 cpp

字符数组:用来存放字符数据的数组。char str[12]={′I′,′ ′,′a′,′m′,′ ′,′h′,′a′,′p′,′p′,′y′};字符个数小于开辟的大小时,后面都补′\0′。而对于char str[]={′I′,′ ′,′a′,′m′}后面不会自动补。字符串结束标志′\0′:为了测定字符串的实际长度。遇到字符′\0′就表示字符串到此结束,由它前面的字符组成字符串。strle...

2019-03-04 16:26:36 1238

转载 C字符串与C++中string的区别——转载

在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作。以下是C字符串和C++中string的区别:&nbsp;C字符串&nbsp;string对象(C++)所需的头文件名称&nbsp;&nbsp;&lt;string&gt;或&lt;string.h&gt;&nbsp;...

2019-03-04 14:45:46 518

原创 cpp函数和预处理 一些术语整理-谭浩强

内置函数(inline function)(内嵌函数,内联函数):嵌入到主调函数中的函数,是一种提高效率的方法。即在编译时将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去。使用内置函数可以节省运行时间,但却增加了目标程序的长度。并非一经指定为inline,编译系统就必须这样做。编译系统会根据具体情况决定是否这样做。因此一般只将规模很小(一般为5个语句以下)而使用频繁...

2019-03-04 11:41:56 660

原创 百炼 2811:熄灯问题

2811:熄灯问题总时间限制: 1000ms 内存限制: 65536kB描述有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态;其他的按钮改变5盏灯的状...

2019-02-12 17:15:32 573

空空如也

空空如也

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

TA关注的人

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