对链表元素插入排序 示例 1: 示例 2: 解题思路: 对于待排序的元素,在前部分有序链表中找到合适的位置插入即可。 如 对结点2插入排序,只需将其插入到节点1与节点3之间即可。 从起点开始遍历查找第一个大于节点2的节点,将节点2插入该节点的前面。 定义两个指针p,q, q指向待排序节点的前一个节点 ...
分类:
编程语言 时间:
2018-07-21 21:30:09
阅读次数:
131
题目: 一个环状链表(收尾相连),两个指针 head1 和 head2 从同一个节点出发,head1 每次 走一步,head2 每次走两步,请证明,两个指针第一次相遇于出发的节点 思路:假设两个节点相遇时,慢节点距离出发节点为c,环状链表中有n个节点。 慢节点速度v,经过t时间相遇后的路程为:c = ...
分类:
其他好文 时间:
2018-07-16 00:26:54
阅读次数:
205
【题目链接】 http://poj.org/problem?id=1741 【算法】 点分治 要求距离不超过k的点对个数,不妨将路径分成两类 : 1. 经过根节点 2. 不经过根节点 考虑第1类路径,不妨从根节点进行一次深度优先遍历,求出每个点与根节点的距离,将距离排序,然后用两个指针扫描一遍即可, ...
分类:
其他好文 时间:
2018-07-15 16:08:29
阅读次数:
172
从数据结构分 一。链表: 3.题目描述:输入一个链表,从尾到头打印链表每个节点的值(递归) 思路:递归调用,调一次,加一次到list中 14.题目描述:输入一个链表,输出该链表中倒数第k个结点 两个指针,第一个先走k步,第二个不动,然后第一个和第二个一起走,知道第一个到尾节点。 15.题目描述:输入 ...
分类:
编程语言 时间:
2018-07-12 23:50:37
阅读次数:
230
前几天在判断 “值相同的两个指针所指向的变量的值可以不同 ” 这句话时,发现自己对指针类型一些概念仅仅是记住了结论。于是以理解这句话为出发点,查阅了一些资料,用这篇博客来记录一下。 一些用到的 在开始之前,先来复习一些下面会用到的知识。 1.内存地址,字节,位 位(bit)是电子计算机中最小的数据单 ...
分类:
其他好文 时间:
2018-06-26 19:31:45
阅读次数:
173
原来的代码判断是否有环比较的是快慢指针是否有朝一日指向的节点的值相同, 而这是有漏洞的,当输入的节点值有重复时,也可能使代码作出有环的误判,现修改其判断指标为当两个指针的地址相同时,则有环。 然而快慢指针缺点略大,两指针极易错过,当环巨大时,耗费过多的时间,也许存在优化的可能,改天再写吧。。。 in ...
分类:
其他好文 时间:
2018-06-26 00:45:56
阅读次数:
168
思想 分治的思想,将原始数组分为较小的数组(但没有像归并排序一样将它们分隔开)。 1. 主元选择: 从数组中任意选择一项作为主元,通常为数组的第一项,即arr[i];或数组的中间项, arr[Math.floor((i+j)/2)]; 2. 划分操作: 创建两个指针,左边一个指向数组的第一项,右边一 ...
分类:
编程语言 时间:
2018-06-24 17:55:11
阅读次数:
174
本文算法使用python3实现 1. 问题 输入两个链表,找出它们的第一个公共结点。 时间限制:1s;空间限制:32768K 2 思路描述 使用两个指针 $ p1,p2 $ 分别指向两个链表的第一个节点 $ pHead1, pH ...
分类:
其他好文 时间:
2018-06-21 13:41:32
阅读次数:
184
面试21题: 题目:调整数组的顺序使奇数位于偶数前面 题一:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 解题思路:使用两个指针,第一个指针初始化指向数组的第一个数字,从前向后移动,遇到偶数就停下来;第二个指针指向数组的最后一个 ...
分类:
其他好文 时间:
2018-06-18 20:58:05
阅读次数:
164
深浅拷贝解析 浅拷贝只拷贝指针,但拷贝后两个指针指向同一个内存空间;深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针指向两个不同地址。当类成员不包括指针和引用时,浅拷贝并无问题;但对于指针与引用成员,当对象的生命周期结束后,浅拷贝会造成同一块内存单元被释放两次,导致内存泄漏 ...
分类:
其他好文 时间:
2018-06-14 15:02:34
阅读次数:
151