码迷,mamicode.com
首页 >  
搜索关键字:两个指针    ( 1059个结果
排颜色问题——数组 leetcode lintcode
问题描述: 给一个数组,并且数组里面元素的值只可能是0,1,2,然后现在把这个数组排序。 另外一种表述: 现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左至右,依次是一些红球、一些白球、一些蓝球。 解题思路: 采用快速排序partition的思想,用两个指针将三种颜色间隔开。 下面引用此处内容 July 编程艺术系列中荷兰国旗问题。 一个...
分类:编程语言   时间:2015-06-08 09:45:17    阅读次数:213
c语言双向循环链表
双向循环链表,先来说说双向链表,双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点.而循环链表之前也有说过,单链表中就是让最后一个结点的指针指向第一个结点就能构成一个循环链表,这...
分类:编程语言   时间:2015-06-07 21:26:16    阅读次数:243
JAVA单链表的实现-不带头结点但带有尾指针
1,本程序实现了线性表的链式存储结构。实现的链表带有两个指针,一个始终指向链表中的第一个结点,另一个指针始终指向链表中的最后一个结点。之所以设置尾指针,是因为,在插入元素到链表中的末尾时,可以通过尾指针直接找到链表的最后一个元素,从而不需要遍历链表就可以完成插入操作。2,具体实现链表的类名为LLis...
分类:编程语言   时间:2015-06-03 17:19:10    阅读次数:102
指针形参实参传递时需要注意
指针形参实参传递时需要注意: 主调函数中实参指针传给被调函数的形参指针时,意味着两个指针指向同一块内存单元。这种情况下在被调函数中通过形参指针对内存区进行操作后,极有可能带来两个指针(形参指针和实参指针)指向不一致。这并不只是由malloc函数造成的(否定之前的观点)。如果在主调函数中依然需要被调函数完成后的那个形参指针,明智的做法是将形参指针返回给主调函数。 为了远离这种不一致,最好的方法就是...
分类:其他好文   时间:2015-05-30 12:17:10    阅读次数:124
巧用“快指针”、“慢指针”
有时候处理链表相关问题的时候,定义“快指针”和“慢指针“的方法有时候会极大地提高时间效率。下面是常见的几种使用这个方法的情况。假设不考虑异常输入的情况。判断一个链表是否有环 定义两个指针,快指针步长为2,慢指针步长为1.同时从链表头开始出发。如果链表中有环那么他们必然相遇。 1 bool ha...
分类:其他好文   时间:2015-05-29 21:44:42    阅读次数:134
链表操作的几个高效技巧
针对leetcode上面的20多个链表的算法题,总结了一下链表操作中的几个技巧。 1. 快慢指针 快慢指针是在遍历链表的时候使用两个指针,快指针每次比慢指针多跑一步或多步,或者快指针先跑n步。这在查找倒数第n个结点、找中间结点时只需要遍历一次,在判断链表是否有环时不需要额外的空间。例如,查找一个链表...
分类:其他好文   时间:2015-05-29 13:37:30    阅读次数:135
快速排序算法
在前面博客有写英文版的快速查找实现例子,在复习的时候,有了新的领悟。【思想】快速排序算法关键在于先在数组中选择一个数字,接下来把数组中的数字分为两部分,比选择的数字小的移动到数组左边,比选择的数字大的移动到数组的右边。【实例说明】快速排序数组data[] = {2,4,9,3,6,7,1,5},设置第一个数为基准值,将其他元素与其进行比较,数组长度为8,设置两个指针i,j分别指向待排序数组首末下标,...
分类:编程语言   时间:2015-05-27 22:50:51    阅读次数:272
leetcode_11题——Container With Most Water(两个指针)
Container With Most WaterTotal Accepted:38917Total Submissions:121822My SubmissionsQuestionSolutionGivennnon-negative integersa1,a2, ...,an, where eac...
分类:其他好文   时间:2015-05-27 15:35:35    阅读次数:129
小算法,大思路,用最优代码阐述编码风格
//two_arg.cpp//题目:两个有序数组,求是否有共同元素(假设是两个升序数组)。//要求:时间复杂度:O(n),空间复杂度S(1)。//算法描述:一次遍历,两个指针分别开始分别指向两个数组。循环控制为是否到两个数组的末尾//每次循环比较两个指针指向的元素的大小,将小的指针后移,..
分类:编程语言   时间:2015-05-27 01:08:48    阅读次数:182
数据结构——归并排序算法
昨天说了快速排序,今天来讲一讲归并排序:什么是归并?归并:将两个或两个以上的有序表组合成一个新有序表。归并操作的步骤: 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针,最初位置分别为两个已经排序序列的起始位置 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 重复步骤3直到某一指针超出序列尾 将另一序列剩下的所有元素直接复制到合并序列...
分类:编程语言   时间:2015-05-26 16:16:06    阅读次数:165
1059条   上一页 1 ... 80 81 82 83 84 ... 106 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!