称号:发现没有比给定数量少n的。只要2,3一个因素的数字组成。分析:数论。贪婪,分而治之。 用两个三分球,分别代表乘法2,和繁殖3队列,队列产生的数字,原来{1}。 然后。每取两个指针相应元素*2和*3的值中最小的即为未找到的数字中最小的; 注意,可能生成反复数据。不要...
分类:
其他好文 时间:
2015-07-17 17:39:16
阅读次数:
255
转载请注明出处:http://blog.csdn.net/ns_code/article/details/26154691题目描写叙述:输入一个复杂链表(每一个节点中有节点值,以及两个指针,一个指向下一个节点,还有一个特殊指针指向随意一个节点)。输入:输入可能包括多个測试例子,输入以EOF结束。对于...
分类:
其他好文 时间:
2015-07-16 11:29:25
阅读次数:
168
题目的注意事项:使用cin和cout有一个测试点会超时,在平时的练习中尽量使用scanf和printf。
题目要求一般化后,可以描述为:在所有元素为正的线性表中找出所有满足题目要求的子列和的子列的位置,如果没有满足要求的子列,则找出所有跟题目要求的子列和最接近的子列的位置。
为了解决这个问题,我们设置两个指针表示当前处理的子列位置,分别为start和end,为了符合题目要求,我们设线性表从1-N标号,线性表存储在容器N中,定义一个sum来记录当前子列的和,使用两个容器answers和minCurs分别记录满...
分类:
其他好文 时间:
2015-07-15 13:23:39
阅读次数:
123
题目:输入两个单链表。找出公共结点。思路:若两个单链表有公共结点。其形状必然为“Y”型,也就是说公共结点后的全部结点都是同样的。我们首先获得两个链表的长度。求得长度之差为n,再定义两个指针分别指向两个链表首部,长链表先走n步,然后两个指针同一时候走,直到两个指针所指向的值全然同样时停止。代码:/*求...
分类:
其他好文 时间:
2015-07-14 19:51:22
阅读次数:
102
1.算法介绍 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。2.算法原理 第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 第二步:设定两个指针,最...
分类:
编程语言 时间:
2015-07-12 20:19:37
阅读次数:
155
二叉树的顺序存储结构就是用一维数组存储二叉树中的节点,并且节点的存储位置,也就是数组的下标要能体现节点之间的逻辑关系。—–>一般只用于完全二叉树
链式存储—–>二叉链表
定义: lchild | data | rchild(两个指针域,一个数据域)typedef struct Node {
ElemType data;
struct Node *lchild...
分类:
其他好文 时间:
2015-07-11 18:34:13
阅读次数:
158
题意:给个单链表,判断是否为回文。思路:有点BT,处理不好都是死循环。一般思路是,二分查找中心点,根据奇偶个元素,反置前半部分,再判断是否回文,再恢复前半部分。步骤: (1)在二分查找中心点时判断顺便反置前半部分链表。 (2)对奇偶数处理好剩下的工作。这是重点 (3)两个指针来判断是否回文。 ...
分类:
其他好文 时间:
2015-07-11 11:50:00
阅读次数:
90
在解决本道题时,最先想到的思路是用两个指针,一个在前,一个紧随其后。然后后面的指针的不断向后移动直到找到匹配的元素或者到达数组的末端。再不断进行下次迭代。代码如下:#include
#include
using namespace std;class Solution {
public:
vector twoSum(vector& nu...
分类:
其他好文 时间:
2015-07-10 09:32:42
阅读次数:
128
题目要求判断最长的回文,有两种思路可供选择。
思路一,从两头进行判断,定义两个指针start_index和end_index分别指向头部和尾部,首先固定start_index,让end_index从最后一个元素向前遍历,直到碰到start_index,其间对start_index到end_index的范围进行回文判断,回文判断的规则很简单,如果start和end指向的元素一样,回文长度length=2,然后start+1,end-1,继续比较,如果符合则继续+2,直到start<end不再满足,注意在这之中...
分类:
其他好文 时间:
2015-07-09 14:34:42
阅读次数:
89
问题描述
给出一个有序数组,就地移除重复元素,保持每个元素只出现一次,并返回新数组的长度。
问题分析
这个比较简单,直接使用两个指针,一个在前,一个在后,扫描一遍数组即可。时间复杂度为O(n^2)。
比如数组A = { 1,1, 2, 3, 3 },看下图,思想简单明了。
代码实现
#include
using namespace std;
//去除数组...
分类:
编程语言 时间:
2015-07-02 22:45:49
阅读次数:
244