LeetCode-11
题目描述
187.重复的DNA序列
137.只出现一次的数字 II
两个题目都是关于位运算的。不得不承认自己不会💔,确实没有这方面的练习,完全没有想法。这个还是需要自己多去尝试,多学习学习。
LeetCode-10
题目
这次题目没啥。难度不大
105.从前序与中序遍历序列构造二叉树
106.从中序与后序遍历序列构造二叉树
114.二叉树展开为链表
解题思路
前两题简单。直接第三题
要求就是把树变成链表,如下:
具体算法是:
将右节点放到左节点的最右边的节点下面。
将左节点放到右节点的位置,左节点为空;
遍历一下即可。
win10汇编学习的环境配置
想学习汇编语言的,首先最重要的装环境。学语言躲不掉的,而且头疼的步骤😂
最开始肯定是想在win10下面运行的。网上一查装,感觉有点麻烦。然后就放弃了准备转战linux。之前把WSL删除了,又要重新弄,之前操作过,难度不大。之后就是安装汇编语言环境,这里也是坑,最后成功了,发现虚拟机DOSbox运行的时候很不正常。运行结果如下,我个人觉得是因为wsl不支持弹出程序界面。具体的我也不知道。就这样吧,win10我来了。
win10汇编学习的环境配置
下面的都是自己在百度上找的,有的已经忘记了网址,只能提供下面几个了。
下载教程
需要的工具
dosBox模拟器。
masm 5.0
debug程序
一、dosBox模拟器
下载地址:直接到官网下载即可。
百度的简介:DOSBox是一个软件。它是当前在 Windows 系统运行 DOS 游戏的较为完美的解决方案,该软件不仅能支持相当多的游戏实现正常运行,而且能将声音完美表现出来。
说实话我也不是很清楚这是干啥的,大概就是一个模拟器,或者是虚拟环境,包含8086汇编环境的,正好适合我的学习。
安装:安装包下载下来直接ne ...
汇编语言中Debug的使用
汇编语言中Debug的使用
学习汇编语言肯定需要工具来帮助解决问题,比如调试等.所以学习debug的使用也是比然的.下面介绍一些debug的常用命令.Debug是DOS、windows提供得实模式(8086方式)程序得调试工具。可以查看cpu各种寄存器的内容、内存使用情况和机器码级跟踪程序的运行
(汇编中应该是不区分大小写的~)
命令汇总
R命令:查看、改变寄存器
D命令:查看内存内容
E命令:改写内存
U命令:机器指令翻译成汇编指令
T命令:执行一条机器指令
A命令:以汇编指令的格式在内存写入一条机器指令
一、R命令的使用
功能:查看改变CPU寄存器的内容
命令格式:
r 可以查看所有寄存器的内容;
r ax ax为寄存器的名称,修改某个寄存器的内容;按下ENTER键之后,会出现‘:’作为输入提示符,后面输入数字,再按下ENRTER,即完成了对AX的修改。
二、D命令的使用
功能:D命令是查看内存单元的命令。
命令格式:
d直接查看预设地址的内容。
d 段地址:偏移地址:查看内存某处的内容。
eg: 查看内存1000 ...
Floyd判圈算法(龟兔赛跑算法)
Floyd判圈算法(Floyd Cycle Detection Algorithm),又称龟兔赛跑算法(Tortoise and Hare Algorithm),是一个可以在有限状态机、迭代函数或者链表上判断是否存在环,求出该环的起点与长度的算法。该算法据高德纳称由美国科学家罗伯特·弗洛伊德发明,但这一算法并没有出现在罗伯特·弗洛伊德公开发表的著作中。
问题:
如何检测一个链表是否有环,如果有,那么如何确定环的起点.
要求:
空间复杂度为O(1), 时间复杂度为O(n).
对于一个有环的链表,利用Floyd算法可以做到下面三件事:
判断是否有环
计算环的长度
寻找环的起点
1.判断是否有环
使用两个指针slow和fast。两个指针都从链表的起始处S开始。slow每次向后移动一步,fast每次向后移动两步。若在fast到达链表尾部前slow与fast相遇了,就说明链表有环。
这里可以简单的证明一下:反证法,假如没有环,那么slow永远追不上fast,那么在fast到达链表尾部前slow不会fast相遇了。若相遇了,链表就有环。
2.求环的长度
当slow和f ...
c_plus_plus的小知识1
厚积薄发!!!
遇到的小知识
内部函数命名。__fun(),函数前面加上前导符。
c++STL“前开后闭”的思想
c++插入是指“插入在……之前”,也就是在指定迭代器i的插入x即insert(iterstor,x),插入之后i这个迭代器在x之后。
vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间。
adapter(配接器) :修改某物接口,形成另一种风貌.
inline 关键字。解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。inline
我的团长我的团—1
扎心
今天看到小太爷走出小醉家门,那段旁白。艹!脑子有问题的孟烦了。这是头疼,可爱不可得。真惋惜,气死!
LeetCode-9
题目
今天就一个题目,有些不好意思🙈
寻找峰值
具体点,就是求解数组中的极大值,并且假设相邻的不会相等,同时nums[-1],nums[n+1]为负无穷。
解题思路
看着题目很简单,一遍遍历即可,但是复杂的是O(n)的。题目要求$O(log(n))$。所以还需改进。
我是看了一眼解答提到的边界值,想到解法的。
思路就是比较中值mid和两段的中间值l_mid,r_mid。
if(nums[mid]<nums[l_mid]){//在左边 right = mid; continue; } if(nums[mid]<nums[r_mid]){//在右边 left = mid; continue; } else{//在中间 left = l_mid; right = r_mid; }}
还是代码解释的快。嘎嘎嘎!
还有一些边界值,这些比较简单,数组数目1,2可以单独考虑。再一个,最先 ...
Typora上传图片
背景
从开始用markdown写文章,自己只会写文字,现在有了多元的需求。比如图片,代码等。这些东西利用原生的代码可以完成,但是人总是偷懒的,没有人愿意先上传图片,再复制链接,最后写在文章中,这样存在很多无用功,所以需要偷懒。😀😉!
我的历程
手写链接+本地保存。垃圾+蠢
利用SMMS图床,用了几次感觉没啥意义,立马放弃。
picGo+github图床。使用起来比较好用,但是国内访问github比较麻烦,上传问题不大,主要是本地显示问题。有点麻烦,于今天弃坑。
picGo+gitee图床,这里必须表扬gitee,访问快,无阻碍。❤
配置流程
现在说来只有一句,搞这个玩意,我花了4-5个小时,还不加之前配置picGo+github图床的时间,心累💢!。
gitee创建仓库,生成令牌,这个比较简单,gitee全中文的界面没有障碍。
下载picGo插件picgo-plugin-gitee-uploader。不知道picGo怎么回事,反正我装了好久才成功,还使用了``npm install picgo-plugin-gitee-uploader -g`下载,最终是怎么成 ...