将排序数组按绝对值大小排序 代码(C)本文地址: http://blog.csdn.net/caroline_wendy排序的数组有可能包含正负, 可以使用折半查找确定中值位置, 然后再使用两个指针, 顺次排序两端.解决思路是: 1.数组中的元素全为正,返回; 2.数组中的元素全为负,返回; 3.数组中有正数有负数,就用二分法查找,判断中间元素的符号 a)中间元素为正...
分类:
其他好文 时间:
2014-09-14 22:12:02
阅读次数:
524
1、题目Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?2、思路设置两个指针,一个每次走一步,另一个每次走两步。走两步的一定会追上走...
分类:
其他好文 时间:
2014-09-11 19:04:32
阅读次数:
223
快速排序:快速排序是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
一趟快速排序的具体做法:
1、附设两个指针low和high,它们的初值分别为low和high,设枢轴记录的关键字为pivotkey。
2、首先从high所指位置起向前搜索找到第一...
分类:
其他好文 时间:
2014-09-11 09:39:51
阅读次数:
216
链表结构:typedef struct ListNode{ int val; struct ListNode *next;}ListNode;1.判断一个单链表是否有环这个问题采用追击的方法,定义两个指针,一个一次走两步,一个一次走一步,如果相遇了就说明有环。int is_cycle(L...
分类:
其他好文 时间:
2014-09-10 14:08:30
阅读次数:
156
题目地址:UVa 11572
这种方法以前接触过,定义两个指针,不断从左向右滑动,判断指针内的是否符合要求。
这个题为了能快速判断是否有这个数,可以用STL中的set。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#incl...
分类:
其他好文 时间:
2014-09-04 15:01:09
阅读次数:
205
本身难度并不大,java一个replace();就可以了,或者另外开辟一个String,遍历一遍也是可行的,但是出发点并不是A题,而是考虑性能,程序在空间还有时间上的使用以及程序的鲁棒性,不过九度上的测试数据还真是大char数组要开到10^6次方。
普通的就不说了,介绍一下书中的方法。
假设str="We Are Happy";设置两个指针p1,p2。初始化为0.p1指的是原长度,p2指的是替...
分类:
其他好文 时间:
2014-09-03 19:56:17
阅读次数:
239
首先需要了解一下BF暴力匹配算法,这个算法为每一个串设置一个指针,然后两个指针同时后移,出现不匹配的情况后,主串指针回到开始后移之前的位置的下一位,模式串指针回到最开始。
对比一下KMP算法,同样是设置两个指针,然后两个指针同时后移,出现不匹配的情况后,主串指针不变,模式串指针回溯一定的距离。具体模式串指针回溯多少,是第一次看KMP算法的人比较难以理解的,其实仔细想想,模式串的前缀和后缀其实也是...
分类:
其他好文 时间:
2014-09-03 11:21:16
阅读次数:
136
题意:给定一个单链表,判断该链表中是否存在环,如果存在,返回环开始的节点
思路:
1.定义两个指针,快指针fast每次走两步,慢指针s每次走一次,如果它们在非尾结点处相遇,则说明存在环
2.若存在环,设环的周长为r,相遇时,慢指针走了 slow步,快指针走了 2s步,快指针在环内已经走了 n环,
则有等式 2s = s + nr => s = nr
3.在相遇的时候,另设一个每次走一步的慢指针slow2从链表开头往前走。因为 s = nr,所以两个慢指针会在环的开始点相遇
复杂度:时间O(n)
struct...
分类:
其他好文 时间:
2014-08-30 23:07:40
阅读次数:
187
快速排序的分治的两种实现方式1,两个指针分别从前面和后面向中间移动// 快速排序有两种partition的方式 // 方式一:两个指针从两端向中间靠拢 private int partation1(int[] array, int start, int end) { int...
分类:
其他好文 时间:
2014-08-26 19:18:06
阅读次数:
178
给定一个链表头, 探测其是否有环, 如果没有返回NULL, 如果有返回环开始的位置.环开始的位置定义为被两个指针指向的位置.算法描述:1. 快慢指针遍历, 如果到头说明无环返回NULL, 如果相遇说明有环, 进入2.2. 慢指针回到起点, 快慢指针每次移动一格直到相遇, 返回快指针/慢指针.代码: ...
分类:
其他好文 时间:
2014-08-22 10:49:06
阅读次数:
178