240 发简信
IP属地:北京
  • 上级有指示,下级不是想办法执行,而是想办法贪污,甚至不允许有更好的选择。
    这样的组织效率,不崩溃也不行吧。

  • 杂笔

    标准输出可能不会立即刷新。如果需要即时输出调试信息,请避免使用标准输出。测试发现,使用标准输出到屏幕时,如果加换行符,会刷新。标准输出到文件可能不会因换行符而刷新。

  • 有迹象表明,为对数组元素a[3]的访问是用*(a+3)来实现的

    C++数组下标越界竟然不触发异常!!

    如题。 今天才发现,原来C++从来不检查数组索引是否越界。访问数组元素,比如a[3]时,编译器其实已经处理成了*(a+3),这时候已经没有数组的概念了,检查数组长度就更无从谈...

  • 二叉树的遍历

    前中后序的递归实现 前中后序的非递归标准实现 总结 整体的思路是这样的: 指针p指向root,创建栈 当栈不为空或p有效时,循环:沿着根节点的左分支一路压入根节点(如果是前序...

  • 120
    二分查找(2)

    最左原位 原位指的是arr[m]==m的位置。找出一个有序单调不减数组中最左原位,若无返回-1. 思路: 对于有序数组来说,直接可以否定两种情况: arr[left]>rig...

  • 二分查找

    原理并不复杂,[low,high]构成了潜在区间,如果中值不等于目标,则减半对应的区间。有一个问题:为什么循环条件是小于等于,而不是小于?因为假设在[1,3]中寻找2,low...

  • 120
    链表求交

    求两个链表是否有交点和交点位置。先判断是否有环。如果两者一个有一个没有,一定没有交点。 两者无环 思路很简单:先求两者长度,然后较大者先从头指针出走m步,m是两者长度差值。然...

  • 链表判环

    如何判断一个单链表是否有环?有环的话返回进入环的第一个节点的地址,无环的话返回空。如果链表的长度为N,请做到时间复杂度O(N),额外空间复杂度O(1)。 策略 定义fast和...

  • 复杂链表的复制练习题

    输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。 思路 遍历该链表,每一个结点后插入一个该节点的拷贝。 遍历该链表,...

  • 链表求中点以及回文检测

    以前见到一个题目,求链表的倒数第K个结点。实现方式很巧妙: 让一个指针先走K步 然后另一个指针从头开始,两者同时开始走。 前指针走完了,那后指针一定是在倒数第K个位置。 求链...

  • 链表入指定值清除

    现在有一个单链表。链表中每个节点保存一个整数,再给定一个值val,把所有等于val的节点删掉。 给定一个单链表的头结点head,同时给定一个值val,请返回清除后的链表的头结...

  • 反转链表

    过程 迭代过程中需要三个指针: p用来指向当前待处理的结点 lastp 指向上一个处理完的结点,初始为空。这样的话,旧链表首结点就是新链表尾结点,尾结点后会自动填充NULL指...

  • 求两个升序链表公共元素

    思路很简单,两个指针分别指向两个链表头,哪个元素小就后移,相等就记录。某一个为空,就退出。

  • 链表的分化问题

    对于一个链表,我们需要用一个特定阈值完成对它的分化,使得小于这个值的结点移到前面,等于的值在中间,大于该值的结点在后面,同时保证两类结点内部的位置关系不变。本题最优的解法是:...

  • 链表一个小小的练习

    删除链表中某一个指定值的结点。所有结点的值都不同。

  • 120
    链表入门

    相比于数组而言,链表是跳跃式索引的结构。 链表分为带头结点的链表和不带头结点的链表,前者在处理链表为空或仅一个元素时有更强的通用性,而后者在处理类似问题时通常做额外处理来避免...

  • 120
    构建大根堆

    对于一个没有重复元素的整数数组,请用其中元素构造一棵MaxTree,MaxTree定义为一棵二叉树,其中的节点与数组元素一一对应,同时对于MaxTree的每棵子树,它的根的元...