自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 错误expected identifier before numeric constant

刷题时报错:expected identifier before numeric constant原因:C++类体里,方法以外的区域不允许有初始化;类的数据成员在定义时不能初始化,否则就违背了面向对象抽象的特点...

2019-11-03 00:03:32 1344 1

原创 cha7--进程环境

一、main()函数1.函数原型int main(int argc, char *argv[])2.参数:argc:命令行参数的数目;argv[]:指向参数的各个指针构成的数组二、进程终止1.有8种进程终止方式,5种正常终止,3种异常终止(1)正常:A.从main()函数返回B.调用exit:先执行清理处理(标准I/O库的清理关闭,对所有打开流调用fc...

2019-10-29 19:13:28 116

原创 gCjetcIlBq

博客搬家

2019-07-31 20:04:17 107

原创 102.二叉树的层序遍历

一、思路:二叉树层序遍历使用队列:一个结点出队时将它的左右孩子放入队列,依次循环打印(循环条件为队列非空);当需要按行打印时,需引入last和nlast两个指针,last指向当前行的最后一个结点,nlast指向下一行的最后一个结点(每次指向新入队的结点,该结点一定是目前下一行的最后一个结点);当last指向的结点出队时,令last=nlast即可。二、代码(c++): ve...

2019-06-06 15:08:43 121

原创 chapter1--UNIX基础知识

/*20190528*//*APUE*//*第一章--UNIX基础知识*/1.Unix操作系统体系结构内核--》系统调用--》shell/公用函数库--》应用程序2.登录口令 1. 口令文件:/etc/passwd; 2. 7个字段:登录名:加密口令:数字用户ID:数字组ID:注释字段:起始目录:shell程序(系统决定为用户执行哪一个shell3.S...

2019-05-29 21:18:07 110

原创 21. 合并两个有序链表

一、思路:采用双指针法,每次比较两个指针指向的结点的大小,将小的放入第三个链表并将指针向后移动一个结点,直到有一个指针为空。最后将非空的指针后面的结点放入第三个链表。二、代码(C++):ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode *l3=new ListNode(0); //新建一...

2019-05-22 22:11:46 75

原创 17.电话号码的字母组合

一、思路:建立一个存放结果的vector<string>res,再建一个临时vector<string>tempres,遍历字符串digits,每次将res里的每个字符串加上新添加的字母放入tempres里,结束后用tempres更新res,直到遍历完字符串digits。二、代码(C++):vector<string> letterCombinat...

2019-05-22 16:00:12 77

原创 11.盛最多水的容器

解法(C++):(1)暴力法:遍历每一种可能 int maxArea(vector<int>& height) { int m=0; //保存最大值 for(int i=0;i!=height.size();i++) //两层循环,遍历每一种情况 { for(int j=i+1;j!=h...

2019-04-07 19:54:50 62

原创 4.寻找两个有序数组的中位数

一、思路:要求时间复杂度为O(M+N),采用双指针法,将两个有序数组归并到另一个数组里,返回新数组的中位数。二、代码(C++):double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { vector<int> merge; //新数组 i...

2019-04-03 19:45:30 82

原创 8.字符串转换整数(atoi)

一、思路:首先找到第一个非空元素,分‘+’‘-’‘数字’三种情况考虑,依次将每一位字符转换成数字即可。二、代码(C++):int myAtoi(string str) { int fir = 0; //记录第一个非空元素位置 int res = 0; //保存结果 int j = 0; for (int i = 0; i != str.size(); i++) ...

2019-04-03 19:21:01 64

原创 7.整数反转

一、思路:通过循环,依次取该整数的最后一个数,再反过来放入另一个整数;要注意在过程中通过INT_MAX,INT_MIN关键字判断有没有越界二、代码(C++): int reverse(int x) { int res=0; while(x) { if(res>INT_MAX/10||res<INT_M...

2019-04-01 12:06:19 61

原创 3.无重复字符的最长子串

一、思路:(1)暴力法:遍历所有的字串,统计不含有重复字符的字串的最大长度(2)滑动窗口法:选取(i,j]范围的元素,查看窗口右边的元素,如果元素不在窗口内,j向右移动一个;如果右边的元素在窗口中已经有了重复的值,把i移动到那个重复的值的地方。二、代码(C++):int lengthOfLongestSubstring(string s) { if(s.size()...

2019-03-31 16:14:35 60

原创 排序算法(三)--快速排序

快速排序:每次寻找一个主元(pivot),将所有比pivot小的元素放在它的左边,将所有比pivot大的元素放在它的右边;再对左右子列进行递归直到子序列长度为1。1.时间复杂度:O(NLogN),在高级排序中是最快的,但是如果数据量较小时,快排的优势就没有了;因此可以和低级排序结合使用,当数据量小于一个值时,调用初级排序2.稳定性:不稳定3.实现方式:递归实现4.算法实现:快排算法...

2019-03-22 12:37:56 123

原创 排序算法(二)--归并排序

归并排序:将多个有序的子序列归并成一个有序的序列1、时间复杂度:O(NlogN)2、空间复杂度:O(N)-->适合外部排序3、稳定性;稳定4、分为递归实现(自上而下)和非递归实现(自下而上)5、算法实现:(1)递归实现://5.1 归并排序(递归算法)void Merge(int a[], int tempa[], int L, int R, int Rend...

2019-03-20 19:48:18 84

原创 排序算法(一)

一、基本概念:1.排序算法是一种很重要的算法,许多其他算法是以排序算法为基础的。排序算法主要有冒泡排序、插入排序、希尔排序、选择排序、堆排序、归并排序、快速排序。2.内部排序:在内存空间里完成数据的排序,一次完成3.排序的稳定性:如果两个大小相等的元素在排序后相对位置不变,则排序是稳定的4.没有一种排序在任意情况下都是最好的,需要分情况使用二、算法实现:1.冒泡排序:大泡泡...

2019-03-07 12:34:35 87

原创 数据结构--二叉树

一、二叉树:1.二叉树是树的一种特殊的形式,每个结点的度最大为2,且有左右之分。2.性质:非空二叉树第 i 层最多 2(i-1) 个结点 (i &gt;= 1) 深度为 k 的二叉树最多 2k - 1 个结点 (k &gt;= 1) 度为 0 的结点数为 n0,度为 2 的结点数为 n2,则 n0 = n2 + 1 有 n 个结点的完全二叉树深度 k = ⌊ log2(n) ⌋ ...

2019-02-27 00:51:03 126

原创 数据结构--栈

一、定义:1.栈是一个受限制的线性表,仅限定在栈顶进行插入/删除操作。先入栈的元素后出栈。2.栈的存储表示方法:顺序栈、链式栈。3.栈的基本操作:init(), push(), pop(), top(), IsEmpty(), Length()...二、实现链式栈(C++):采用链表结构实现一个简单的链式栈:1.链表结点类型定义:struct Node { int ...

2019-02-25 22:13:28 74

原创 链表

一、链表1.链表即为线性表的链式存储结构,逻辑上相邻的元素在物理上不相邻。 2.通过指针来实现元素之间的逻辑关系,一个链表由数据域和指针域构成。 3.相对于顺序表,链表不能实现随机存储,查找元素需要从头开始遍历;但是链表在对元素进行插入和删除操作时,不需要移动元素,并且不需要分配连续的储存空间。二、链表的实现链表是一种递归的数据结构,要么为空,要么指向下一个结点。定义一...

2019-02-22 23:32:23 240

原创 刷leetcode-day41

一、题目:141.环形链表:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。二、思路:采用快慢指...

2019-02-14 13:12:01 84

原创 刷leetcode-day40

一、题目:94、二叉树的中序遍历:给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]二、思路:使用二叉树中序遍历的递归算法容易实现。三、代码(C++):class Solution {public:    vector&lt;int&gt; inorde...

2018-12-30 16:45:56 99 1

原创 刷leetcode-day39

一、题目:921.使括号有效的最少添加:给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效。从形式上讲,只有满足下面几点之一,括号字符串才是有效的:它是一个空字符串,或者 它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者 它可以被写作 (A),其中 A...

2018-12-28 11:31:47 83

原创 刷leetcode-day38

一、题目:739.每日温度根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数。如果之后都不会升高,请输入 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。二、思路:遍历vector,对于每个元...

2018-12-24 17:19:05 75

原创 刷leetcode-day37

一、题目:155.最小栈:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(...

2018-12-20 21:42:54 82

原创 刷leetcode-day36

一、题目496.下一个更大的元素给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。示例 1:输入: nums1 = [4,1,...

2018-12-06 21:31:07 80

原创 刷leetcode-day35

一、题目:844、比较含退格的字符串给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。二、思路:将S和T分别存入一个栈,碰到“#”就执行一次出栈操作;比较两个栈是否相等三、代码(...

2018-12-04 18:56:35 83

原创 刷leetcode-day34

一、题目:682.棒球比赛你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. "+"(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3. "D"(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4. "C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有...

2018-12-03 18:00:21 105

原创 刷leetcode-day33

一、题目:61.旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL, k = 2输出: 4-&gt;5-&gt;1-&gt;2-&gt;3-&gt;NULL解释:向右旋转 1 步: 5-&gt;1-&gt;2-&gt;3-&gt;4-&gt;N

2018-11-20 19:09:25 83

原创 刷leetcode-day32

一、题目:86.分隔链表给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1-&gt;4-&gt;3-&gt;2-&gt;5-&gt;2, x = 3输出: 1-&gt;2-&gt;2-&gt;4-&gt;3-&gt;5二、思路:首先用指针p找...

2018-11-16 19:15:05 100

原创 19.删除链表中倒数第n个结点

一、题目:19.删除链表中倒数第n个结点给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.二、思路:首先遍历一遍链表,获得链表长度length。再遍历第二次链表,采用cnt计数,当cnt...

2018-11-14 20:41:25 83

原创 刷leetcode-day30

一、题目:82.删除排序链表中的重复元素II给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1-&gt;2-&gt;3-&gt;3-&gt;4-&gt;4-&gt;5输出: 1-&gt;2-&gt;5示例 2:输入: 1-&gt;1-&gt;1-&gt;2-&gt;3输出: 2-&gt;3二、思路:引...

2018-11-12 20:32:25 178

原创 刷leetcode-day29

一、题目:24.两两交换链表中的结点:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1-&gt;2-&gt;3-&gt;4你应该返回 2-&gt;1-&gt;4-&gt;3说明:你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。二、思路:采用一个结点f指向两个需要交换的结点的前一个,首先进行删除...

2018-11-09 20:32:44 69

原创 2.两数相加

一、题目:2.两数相加:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807二、...

2018-11-06 21:41:23 114

原创 刷leetcode-day27

一、题目:929.独特的电子邮件地址每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。例如,在 [email protected]中, alice 是本地名称,而 leetcode.com 是域名。除了小写字母,这些电子邮件还可能包含 ',' 或 '+'。如果在电子邮件地址的本地名称部分中的某些字符之间添加句点('.'),则发往那里的邮件将会转发到本地名称中没有点...

2018-11-05 17:39:42 103

原创 刷leetcode-day26

一、题目:203.移除链表元素删除链表中等于给定值 val 的所有节点。示例:输入: 1-&gt;2-&gt;6-&gt;3-&gt;4-&gt;5-&gt;6, val = 6输出: 1-&gt;2-&gt;3-&gt;4-&gt;5二、思路:引入一前一后两个指针p,q,查找q-&gt;val是否为val,是则删除q指向的结点。不是则p,q向后移动继续查找三、代码...

2018-10-29 14:16:20 89

原创 刷leetcode-day25

一、题目:206.反转链表:反转一个单链表。示例:输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL输出: 5-&gt;4-&gt;3-&gt;2-&gt;1-&gt;NULL二、思路:反转链表结点的值,从第一个结点向后遍历,依次交换前后两个结点的值,把第一个结点的值放到最后;然后再从第一个结点向后依次交换,把第一个结点的值放在倒数第二个结点位...

2018-10-25 21:18:07 73

原创 刷leetcode-day24

一、题目:237.删除链表中的结点:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -&gt; 5 -&gt; 1 -&gt; 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]说明:链表至少...

2018-10-25 15:17:41 87 2

原创 刷leetcode-day23

一、题目:83.删除排序链表中的重复元素:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1-&gt;1-&gt;2输出: 1-&gt;2示例 2:输入: 1-&gt;1-&gt;2-&gt;3-&gt;3输出: 1-&gt;2-&gt;3二、思路:引入两个指针p=head,q=head-&gt;next。采用一个while...

2018-10-24 19:28:54 90

原创 C++学习笔记---头文件、分离编译

1.编写头文件的格式:Sales_data.h为例#ifndef SALES_DATA_H(大写)#defineSALES_DATA_H函数声明;类定义;#endif2.分离编译:主函数调用的函数可以定义保存在其他.cpp文件里,只需在主函数文件中包含对所使用函数的声明的头文件...

2018-10-18 18:23:11 170

原创 C++学习--引用、指针、const限定符

1.引用:(1)必须初始化,一旦绑定一个对象不可再改变(2)引用的类型须与绑定对象的类型一致(特例:初始化常量引用时可用任意类型,只要可以转化成引用的类型)(3)引用不是一个对象(只是被引用对象的别名) 2.CONST限定符:(1)const对象必须初始化(2)常量特性只有在改变值时才会发挥作用2.1“常量引用”:对常量的引用,不能通过引用改变所引用对象的值  ...

2018-10-15 21:40:24 75

原创 刷leetcode-day22

一、题目:788.旋转数字:我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方;6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现...

2018-10-15 16:35:47 59

空空如也

空空如也

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

TA关注的人

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