logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

LeetCode 23. 合并K个升序链表(C++)

对于数组中每个链表我们在头部都放置一个指针,将最小的元素放进结果链表中。一种简单的思路就是每次进行两两合并,比如以第一个链表最为最终链表,那么把剩下的链表都合并到第一个链表上来。还需要判断一下数组中没有链表和只有一个链表的情况。这种方法的缺点就是要扫描第一个链表很多遍,会产生重复的对比,因此时间复杂度比较高,但是不需要额外的空间,因此空间复杂度较低。我们可以采用归并的算法使得链表两两合并,这样能够

#链表#leetcode#数据结构
LeetCode 94.二叉树的中序遍历 (C++)

因为中序遍历的话我们需要一直深入到左子树底,这样就找不到最初的根节点了,因此这里的想法就是将二叉树改造为线索二叉树。由于根节点左子树中的最右下的节点一定是根节点中序遍历的前驱结点,因此只需要每往下找一层左子树的时候,将根节点赋给前驱结点的right即可,这样就可以找到根节点了。但是要注意的是,二叉树的遍历理论上不会改变二叉树结构,所以要保证遍历完之后所有前驱节点的right重新指向空才行,否则le

#leetcode#c++#算法
LeetCode 101. 对称二叉树 (C++)

树对称,则说明从根往下走,根的左孩子的情况和根的右孩子情况相同(即要空都是空,不空的话值一定相等),根左孩子的左孩子情况与根右孩子的右孩子情况相同。思路:很容易想到的是树的层次遍历,因此需要队列。可以用一个队列存左子树的情况,一个队列存右子树的情况,然后比较即可。但是想一想,也可以不需要两个队列,一个队列就能搞定,只要依次序交叉存左孩子和右孩子的情况即可。那么在比较的时候,一次弹出两个元素就可以了

#leetcode#c++#算法
LeetCode 141. 环形链表(C++)

若链表有环,则pos的值为链表中的位置下标(从0开始编号)。其中题目中每个节点的数字是迷惑作用,思路:用一个set来把碰到过的指针都存下来,如果在遍历的过程中发现set中有这个指针,那么说明有环,返回true。给你一个链表的头节点指针head ,判断链表中是否有环。这里快指针一次走2步,走3步,甚至走更多步都可以,慢指针一定要比快指针的步子小。思路:使用一块一慢两个指针,若链表有环,慢的指针迟早都

#链表#leetcode#c++
C++实现四舍五入的几种方法

要得到四舍五入小数点后的结果,我们可以将小数转换为整数来处理,然后再转换为小数。例如我们需要将1.2345这个数保留小数点后两位四舍五入,我们可以先将其乘以100转换为123.45,然后套用整数的方法来进行四舍五入,再将其除以100转换为小数。fixed(std::fixed)表示用于setpricision的有效数字针对的是小数点后的有效数字。若只需要得到四舍五入的输出,那我们可以利用print

#c++#蓝桥杯#开发语言
到底了