自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 资源 (1)
  • 收藏
  • 关注

转载 PyPi到底是什么?pypi有啥作用?PyPi和pip有何渊源?

可能有很多刚入行不久的朋友们,每天都在用pip 命令install 一些python软件包,却对pypi 不甚了解,那这个pip和pypi之间有什么练习和区别呢?下面就带大家简单有个了解吧!希望能够帮助到大家! pip 是一个现代的,通用的 Python 包管理工具,是easy_install的替代品,英文python install packages! ...

2019-07-26 19:57:15 1199 1

原创 Pandas库之DataFrame使用的学习笔记

http://www.52codes.net/develop/shell/57910.htmlpandas.DataFrame.from_dictclassmethodDataFrame.from_dict(data,orient='columns',dtype=None,columns=None)[source]Construct DataFrame from dict of...

2019-07-20 22:06:47 484

转载 extern和extern "C"

函数的声明extern关键字是可有可无的,因为函数本身不加修饰的话就是extern的。下面分变量和函数来说明:(1) 变量 extern int a; //声明一个全局变量 int a; //定义一个全局变量 extern int a = 0;//定义全局变量并给初值 int a = 0; //定义全局变量并给初值上面的四个只有第一个extern int a才是声明,其...

2019-07-07 16:55:27 376

转载 C++ explicit关键字详解

首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:classCxString//没有使用explicit关键字的类声明,...

2019-05-27 17:21:19 148

原创 C++虚继承下的内存模型

对于普通继承,基类子对象始终位于派生类对象的前面(也即基类成员变量始终在派生类成员变量的前面),而且不管继承层次有多深,它相对于派生类对象顶部的偏移量是固定的。请看下面的例子: obj_a、obj_b、obj_c、obj_d 的内存模型如下所示 A 是最顶层的基类,在派生类 B、C、D 的对象中,A 类子对象始终位于最前面,偏移量是固定的,为 0。b1、b2 是派生类 B ...

2019-05-27 16:15:25 1956

原创 C++中虚函数工作原理和(虚)继承类的内存占用大小计算

一、虚函数的工作原理虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表)的函数指针数组,每一个包含虚函数的类都关联到 vtbl。当一个对象调用了虚函数,实...

2019-05-27 10:50:29 261

转载 深度探索C++对象模型

深度探索C++对象模型什么是C++对象模型: 语言中直接支持面向对象程序设计的部分. 对于各个支持的底层实现机制. 抽象性与实际性之间找出平衡点, 需要知识, 经验以及许多思考.导读这本书是C++第一套编译器cfront的设计者所写. 了解C++对象模型, 有助于在语言本身以及面向对象观念两方面层次提升. explicit(明确出现于C++程序代码). implici...

2019-05-27 08:57:05 155

转载 C++对象模型

何为C++对象模型?C++对象模型可以概括为以下2部分:1.语言中直接支持面向对象程序设计的部分2.对于各种支持的底层实现机制语言中直接支持面向对象程序设计的部分,如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等,这也是组里其他同学之前分享过的内容。第一部分这里我简单过一下,重点在底层实现机制。在c语言中,“数据”和“...

2019-05-17 14:39:28 99

原创 C++——堆排序

堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了#include <iostream>#include <cstdlib>using namespace std;...

2019-05-15 18:11:02 150

转载 C++——list基本操作总结

头文件#include<list>声明一个int型的list:list<int> a;1、list的构造函数list<int>a{1,2,3}list<int>a(n) //声明一个n个元素的列表,每个元素都是0list<int>a(n, m) //声明一个n个元素的列表,每个元素都是mlist&lt...

2019-05-12 14:24:48 836

原创 lintcode(19)——二叉查找树中搜索区间

11.二叉查找树中搜索区间给定一个二叉查找树和范围[k1, k2]。按照升序返回给定范围内的节点值。样例 1:输入:{5},6,10输出:[] 5它将被序列化为 {5}没有数字介于6和10之间样例 2:输入:{20,8,22,4,12},10,22输出:[12,20,22]解释: 20 / \ 8 ...

2019-05-08 21:00:33 311

原创 C++ 二叉查找树

一、概念 二叉查找树(Binary Search Tree),又被称为二叉搜索树。它是特殊的二叉树:对于二叉树,假设x为二叉树中的任意一个结点,x节点包含关键字key,节点x的key值记为key[x]。如果y是x的左子树中的一个结点,则key[y] <= key[x];如果y是x的右子树的一个结点,则key[y] >= key[x]。那么,这棵树就是二叉查找树。如下图所...

2019-05-08 20:53:35 430

原创 lintcode(18)——骰子求和

20.骰子求和扔n个骰子,向上面的数字之和为S。给定n,请列出所有可能的S值及其相应的概率。样例 1:输入:n = 1输出:[[1, 0.17], [2, 0.17], [3, 0.17], [4, 0.17], [5, 0.17], [6, 0.17]]解释:掷一次骰子,向上的数字和可能为1,2,3,4,5,6,出现的概率均为 0.17。样例 2:输入...

2019-05-08 16:24:27 367

原创 lintcode(17)——子集

17.子集给定一个含不同整数的集合,返回其所有的子集。样例 1:输入:[0]输出:[[],[0]]样例 2:输入:[1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]挑战你可以同时用递归与非递归的方式解决么?注意事项子集中的元素排列必须是非降序的,解集必须不包含重复的子集。非递归:...

2019-05-07 15:49:32 229

转载 lintcode(16)——带重复元素的全排列

16.带重复元素的排列给出一个具有重复数字的列表,找出列表所有不同的排列。样例 1:输入:[1,1]输出:[ [1,1]]样例 2:输入:[1,2,2]输出:[ [1,2,2], [2,1,2], [2,2,1]]挑战使用递归和非递归分别完成该题。class Solution {private: void hel...

2019-05-06 16:46:09 294

转载 C++——set基本操作总结

set容器中只能存储键,是单纯的键的集合,其中键是不能重复的。set支持大部分的map的操作,但是set不支持下标的操作,而且没有定义mapped_type类型。下面简单总结下set容器的操作:1、set对象的定义和初始化set对象的定义和初始化方法包括:set<T> s;set<T> s(s1);set<T> s(b, e);其中,b和...

2019-05-06 10:45:51 3302

转载 C++——map基本操作总结

标准库map类型是一种以键-值(key-value)存储的数据类型。以下分别从以下的几个方面总结:map对象的定义和初始化map对象的基本操作,主要包括添加元素,遍历等1、pair类型1.1、pair类型的定义和初始化pair类型是在有文件utility中定义的,pair类型包含了两个数据值,通常有以下的一些定义和初始化的一些方法:pair<T1, T2> p;pai...

2019-05-06 10:41:07 236

原创 C++ 回溯法

一、定义 在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。(其实回溯法就是对隐式图的深度优先搜索算法)。 若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。 而若使用回溯...

2019-05-04 20:18:37 7093

原创 lintcode(15)——全排列

15.全排列给定一个数字列表,返回其所有可能的排列。样例 1:输入:[1]输出:[ [1]]样例 2:输入:[1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]挑战使用递归和非递归分别解决。注意事项你可以假设没有重复数字。思路:...

2019-05-04 19:41:19 2030

原创 lintcode(14)——翻转链表

35.翻转链表翻转一个链表样例 1:输入: 1->2->3->null输出: 3->2->1->null样例 2:输入: 1->2->3->4->null输出: 4->3->2->1->null挑战在原地一次翻转完成/** * Definition of ...

2019-05-03 17:31:12 104

原创 lintcode(13)——N皇后问题

33.N皇后问题n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击。给定一个整数n,返回所有不同的n皇后问题的解决方案。每个解决方案包含一个明确的n皇后放置布局,其中“Q”和“.”分别表示一个女王和一个空位置。例1:输入:1输出: [["Q"]]例2:输入:4输出:[ // Solution 1 [".Q..", "....

2019-05-03 15:34:34 2543

原创 lintcode(12)——最小子串覆盖

32.最小子串覆盖给定一个字符串source和一个目标字符串target,在字符串source中找到包括所有目标字符串字母的最短子串。样例例1:输入:""""输出:""例2:输入:"ADOBECODEBANC""ABC"输出:"BANC"挑战要求时间复杂度为O(n)说明在答案的子串中的字母在目标字符串中是否需要具有相同的顺序?——...

2019-04-30 18:20:31 865

原创 lintcode(11)——数组划分

31.数组划分给出一个整数数组nums和一个整数k。划分数组(即移动数组nums中的元素),使得:所有小于k的元素移到左边 所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置i,满足nums[i] 大于等于k。样例Example 1:Input:[],9Output:0Example 2:Input:[3,2,2,...

2019-04-30 10:53:05 130

原创 lintcode(10)——插入区间

30.插入区间给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。样例样例 1:输入:(2, 5) into [(1,2), (5,9)]输出:[(1,9)]样例 2:输入:(3, 4) into [(1,2), (5,9)]输出:[(1,2), (3,4)...

2019-04-29 17:08:41 165

原创 lintcode(9)——交叉字符串

29.交叉字符串给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。Example 1:Input:"aabcc""dbbca""aadbbcbcac"Output:trueExample 2:Input:"""""1"Output:falseExample 3:Input:"aabcc""dbbca""aadbb...

2019-04-28 16:00:00 196

原创 C++动态规划算法

基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划(DP)。基本思想与策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局...

2019-04-28 15:49:50 2534

转载 C++栈实现

1、栈(Stack)是一种线性存储结构,它具有如下特点:(1)栈中的数据元素遵守“先进后出"(First In Last Out)的原则,简称FILO结构。(2)限定只能在栈顶进行插入和删除操作。2、栈的相关概念:(1)栈顶与栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底。(2)压栈:栈的插入操作,叫做进栈,也称压栈、入栈。(3)弹栈:栈的删除操作,也叫做出栈。...

2019-04-28 11:02:57 2090

原创 C++队列实现

一、相关定义原理:queue队列也是一个线性存储表,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出FIFO(FirstInFirstOut)表。队头&队尾:插入一端称为队尾,删除一端称为队首。C++队列是一种容器适配器,默认使用双端队列deque来实现,将deque容器转换为queue容器。当然,也可以利用其他合适的序列容器作为底层实现que...

2019-04-28 10:51:30 2342 3

原创 辗转相除法求最大公约数

辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。两个数的最大公约数是指能同时整除它们的最大正整数。设两数为a、b(a≥b),求...

2019-04-28 10:19:33 25599

原创 杂耍算法

杂耍算法步骤:1)先将x[0]移到临时变量t中2)将x[i]移动到x[0]中,x[2i]移动到x[i]中,依次类推3)将x中的所有下标都对n取模,直到我们又回到从x[0]中提取元素。不过这时我们从t中提取元素,结束。问题描述:请将一个具有n个元素的一维向量x向左旋转i个位置。例如,假设n=8, i=3,那么向量abcdefgh旋转之后得到向量defghabc。...

2019-04-28 10:19:14 523

原创 lintcode(8)——恢复旋转排序数组

39.恢复旋转排序数组给定一个旋转排序数组,在原地恢复其排序。样例Example1:[4, 5, 1, 2, 3]->[1, 2, 3, 4, 5]Example2:[6,8,9,1,2]->[1,2,6,8,9]挑战使用O(1)的额外空间和O(n)时间复杂度说明什么是旋转数组?比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2...

2019-04-27 20:41:23 133 1

原创 lintcode(7)——搜索二维矩阵

38.搜索二维矩阵 II写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。 每一列的整数从上到下是排序的。 在每一行或每一列中没有重复的整数。例1:输入:[[3,4]]target=3输出:1例2:输入: [ [1, 3, 5, 7], [2, 4, 7,...

2019-04-27 10:52:46 808

原创 lintcode(6)——最大子数组

41.最大子数组给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。样例1:给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6样例2:给出数组[1,2,3,4],符合要求的子数组为[1,2,3,4],其最大和为10挑战要求时间复杂度为O(n)注意事项子数组最少包含一个数方法一:class...

2019-04-26 20:40:40 181

原创 lintcode(5)——主元素

46.主元素给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。样例 1:输入: [1, 1, 1, 1, 2, 2, 2]输出: 1样例 2:输入: [1, 1, 1, 2, 2, 2, 2]输出: 2挑战要求时间复杂度为O(n),空间复杂度为O(1)注意事项你可以假设数组非空,且数组中总是存在主元素。...

2019-04-20 10:36:33 254

原创 lintcode(4)——下一个排列、上一个排列

52.下一个排列给定一个整数数组来表示排列,找出其之后的一个排列。样例例1:输入:[1]输出:[1]例2:输入:[1,3,2,3]输出:[1,3,3,2]例3:输入:[4,3,2,1]输出:[1,2,3,4]注意事项排列中可能包含重复的整数先解释一下“字典序”:对于数字1、2、3......n的排列,不同排列的先后关系是从左到右逐...

2019-04-19 19:44:35 282

转载 C++之string类型详解

之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为它和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个泛型类出现,它集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联等。我们尽可以把它看成是C++的基本数据类型。C++中对于strinig的定义为:typedef basic_s...

2019-04-19 10:48:49 334

原创 lintcode(3)——翻转字符串中的单词、转换字符串到整数

53.翻转字符串中的单词给定一个字符串,逐个翻转字符串中的每个单词。样例样例 1: 输入: "the sky is blue" 输出: "blue is sky the" 样例解释: 返回逐字反转的字符串.样例 2: 输入: "hello world" 输出: "world hello" 样例解释: 返回逐字反转的字符串.说明单词的...

2019-04-18 20:03:42 166

原创 lintcode(2)——两个排序数组的中位数

65.两个排序数组的中位数中文English两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))。样例样例1输入:A = [1,2,3,4,5,6]B = [2,3,4,5]输出: 3.5样例2输入:A = [1,2,3]B = [4,5]输出: 3挑战时间复杂度为O(log n)...

2019-04-18 15:24:33 244

原创 lintcode刷题——两数之和、三数之和、四数之和、最接近的三数之和

56.两数之和给一个整数数组,找到两个数使得他们的和等于一个给定的数target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到n-1。样例Example1:numbers=[2, 7, 11, 15], target=9return [0, 1]Example2:numbers=[15, 2, 7,...

2019-04-17 17:15:05 212

转载 IDE,SCSI,SATA硬盘比较

硬盘是PC机上的重要部件之一,它在很大程度上决定了机器的性能。硬盘能达到今天这样优秀的性能和可靠性,经过了一个以IT产业的眼光来看是漫长的发展历程。最早用于PC的硬盘接口是ST-506/412,它是由希捷公司开发的一种硬盘接口。这种接口把磁盘的编解码器位于PC插槽上的磁盘控制卡上,用一个34芯的控制电缆(Control cable)接头和一个20芯的数据电缆(Data cable)...

2019-03-22 13:21:55 4084

消除单片机复位及程序跑飞影响的措施

提出解决单片机复位及程序跑飞影响的措施

2017-08-19

空空如也

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

TA关注的人

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