- 博客(18)
- 收藏
- 关注
转载 python自增自减?赋值语句返回值?逗号表达式?
咳咳,直接进入正题吧。自增自减(++/--),以及赋值语句,还有逗号表达式都是在C/C++中常见的运算符或表达式。熟悉C/C++的小伙伴们都知道,在C/C++中:自增自减(前缀/后缀)运算符将实现对变量值的 加1/减1; 类似 x = 0; ++x;的语句会使最终 x 的值为1赋值语句将所赋的值作为该语句的返回值(值传递); 类似 (x = func()) >...
2019-09-19 20:34:00
1080
转载 寻找缺失元素
算法每日精进,offer!offer!offer!给定一个包含,0,1,2,......,n 中 n 个数的序列,找出 0 - n中未出现的序列中的那个数。如: 输入:[3, 0, 1] 输出:2 输入:[8, 5, 4, 6, 7, 1, 0, 2] 输出:3方法一:对该序列排序,并遍历数组,下标与值不对应的那个下标就是缺失元素,时间复杂度,快排O(...
2019-09-18 23:10:00
388
转载 数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。有一个很容易理解的方法就是直接排序,如果该数字存在则中间的位置就是该数字。时间复杂度为O(nlgn)这次主要谈一谈第二种方法。遍历整个数组,如果下...
2019-09-18 22:15:00
164
转载 计算1+2+...+n
牛客上面一道题,闲来无事做做陶冶情操。这一陶冶还真的陶冶出了骚操作看一下题目吧:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。OK,不能用循环,那就用递归,不能用if,那就利用逻辑短路!代码:class Solution {public: ...
2019-09-17 09:31:00
244
转载 元组---戴上枷锁的列表
元组(tuple)元组不能被修改 定义: tuple1 = () tuple2 = (1,) tuple3 = (1, 2.1, "adf") 注意: 定义单个元素时最后的 逗号分隔符不能省,如>>> tuple2 = (1)>>> type(tuple2)<class 'int'>也可以不加圆括号...
2019-09-15 20:38:00
105
转载 列表切片 及 内置方法
1.列表分片(Slice) listname[start : end] start 默认值0, end 默认值 len(listname) 实例: 列表拷贝 listname1 = listname[:] (相当于c++深拷贝) listname2 = listname (相当于c++浅拷贝) 2. 列表比较 从左往右对应的每个...
2019-09-15 20:19:00
873
转载 python列表删除--remove(),del,pop()
remove()参数为列表元素,若在列表中,删除,不在则报错如:pop()不带参数时默认删除列表的末尾元素并返回该元素,带参数时该参数为列表元素的下标值不带参数:以下标为参数:del 后面可跟列表名,可跟列表元素,跟列表名直接解除该名称与列表的引用关系,跟列表元素则删除对应列表元素要区分的是下面两句删...
2019-09-14 13:42:00
268
转载 python列表插入--append(), extend(), insert()
append(),extend(), insert()都是列表操作中常用的插入函数。其中前两个均接收一个参数,并插入到列表尾部。最后一个接收两个参数,将参数2插入到参数1之前。本文主要讨论append()和extend()的区别。这两者都是插入函数,但是不同的是,append()的参数被视为对象,而extend()中的参数则被视为列表也就是说,append()函数会...
2019-09-14 13:05:00
137
转载 range()函数
python range() 函数可创建一个整数列表,一般用在 for 循环中。range()函数有三个参数,分别是start, stop和step。准确的说range()函数将返回一个从start到stop,步长为step的整数序列的对象。help(range)>>>Return an object that produces a sequence of...
2019-09-14 12:02:00
4762
转载 c++拷贝构造函数引用传参
看一道C++面试题:给出下述代码,分析编译运行的结果,并提供3个选项: A.编译错误 B.编译成功,运行时程序崩溃 C.编译运行正常,输出10class A{ private: int value; public: A(int n){ value = n;} A(A other){ value = other.value; } vo...
2019-09-10 22:02:00
566
转载 我居然要写这周的周报???
这周真的是恶补了链表的一些操作,虽然至今还没有补完,emmm感谢博客园的首页推送,诞生了一个访问量上百的博客(太惨了,这居然是我访问量第一次破百)贴链接1.单向链表翻转,就地逆置与递归翻转(无表头结点)https://www.cnblogs.com/GuoYuying/p/11455844.html再看看其他的链表算法吧2.合并两个有序链表(也是采用了递归与非递归...
2019-09-08 22:07:00
163
转载 删除单向非空有序链表中的重复结点,且不保留重复结点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5这个算法自己在牛客上编辑通过后又百度查了一下其他人的做法,发现大家都是用了两层循环来解决,我还是比较喜欢一遍跑,自己的思路是边跑边删,与保留重复...
2019-09-08 21:46:00
143
转载 复杂链表的复制
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)结点结构体如下:/*struct RandomListNode { int label; struct RandomListNode *ne...
2019-09-06 21:49:00
107
转载 合并两个有序链表
题目:输入两个单调递增的链表pHead1和pHead2,输出两个链表合成后的链表,需要合成后的链表满足单调不减规则方法一:非递归合并 两个指针分别从链表头开始,以其中一个链表为基准链,将另一个链表结点不断插入到基准链的适当结点之前。 这里以 p = pHead1, q = pHead2; 并且以 pHead1链表为基准链,将pHead2结点插入到pHead1。判断过程...
2019-09-05 13:44:00
120
转载 strcpy函数内存分析
void strcpy(char* strDest, char* strSrc){ while((*strDest++ = *strSrc++) != '\0');}看上面这段代码,只有一条语句,当然把代码放在这里不是为了展示编程技巧,而是想要说一下这段简短的代码中会出现的内存问题。(先谢组长一波)1.指针为空 这是最典型的也是最容易想到的,strDest和s...
2019-09-03 21:51:00
327
转载 单向链表反转,就地逆置与递归反转(无表头结点)
最近在看链表,今天刷到一道链表的反转题,链表反转可以说是基础操作,但是可提供的方案也有很多,简单通过了该题后又学习了一下递归反转,现在把三种方法都公开出来做一个总结。1.就地逆置2.单参数的递归逆置3.双参数的递归逆置一、就地逆置方法:头插。由于这里是不带表头结点的单向链表,所以头插会稍微复杂一点,不想往下看的小伙伴也可以直接选择定义一个临时表头结点从头结点开始遍...
2019-09-03 21:35:00
556
转载 deepin终端下载速度超慢解决方案
最近发现在deepin终端下载软件包时速度简直是慢到不可饶恕,最快速度不上20KB/s,哭了,这要下载个几百KB的还能忍,稍微下载个百内MB的包就得等1-2小时,这咋行!在网上查了几篇博客后,终于找到了解决办法,其实只需要重新配置一下软件源就可以。可以查看/etc/apt/sources.list里面就是deepin提供的软件源,但是这个官方的很慢很慢,一般换一个第三方的源就可以...
2019-09-01 15:37:00
1964
转载 字符串常量初始化指针
今天写个小文说一说字符串地址和字符串常量。在C/C++中,一个字符串常量表示的是该字符串第一个元素的地址,就跟char指针名,char数组名表示的是字符串第一个元素的地址一样。想要打印一个地址,用一个简单的 cout << 地址; 语句就可以搞定;但是下面这两条语句将打印整个字符串char a[20] = "1234";cout << a ...
2019-08-21 23:36:00
314
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人