
编程题
daboluo520
山河远阔,人间星河,无一是你,无一不是你。
展开
-
复杂链表的复制
一、复杂链表 1.什么叫复杂链表? 每个节点中有一个节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点或NULL。 2.结构体 struct RandomListNode { int label; struct RandomListNode *next, *random; RandomListNode(int x) //初始化节点 ...原创 2018-06-03 21:30:57 · 150 阅读 · 0 评论 -
输入一个字符串,求字符串中包含的字符集合
输入:abcqweracb 输出:abcqwer 一、剖析 采用数组的方式,定义一个可以存放256个字符的数组(ASCII最多包含256个字符),先将数组初始化1,然后开始进行遍历输入字符串,第一次遇到就将其输出,并将数组中的字符值改为0。 二、在线oj,输入输出 对于<剑指Offer>这种有函数定义的题目,你只要完成函数,返回相关的值就可以,不需要处理任何输入输出,...原创 2018-07-23 12:00:50 · 4822 阅读 · 0 评论 -
字符串中连续最长数字串
一、题目要求 二、解析 使用左右下标来记录连续数字,使用cur来记录最长连续数字的个数。 三、代码 #include <iostream> using namespace std; void print(string str) { int i=0; int left=0; //记录左下标 int right=0; //已记录的最大连续数字的...原创 2018-07-28 18:02:59 · 600 阅读 · 0 评论 -
[剑指offer] 连续子数组最大和
题目:对于一个有正有负的整数数组,请找出总和最大的连续数列。 给定一个int数组A和数组大小n,请返回最大的连续数列的和。 1.思路: (1)定义两个变量,一个保存最终的最大和,一个是临时变量,不能初始化为0,初始化都为数组第一个数(防止都是负数,它的和肯定是负数)。 (2)for循环依次向后遍历,如果tmp临时变量是负数,说明之前的正数都不能弥补负数的坑,这时赋值为下一个数的值;如果是tm...原创 2018-07-21 10:29:08 · 187 阅读 · 0 评论 -
求最小步数变为斐波那契数
一、解析: 当我们一步一步走的时候,一边计算斐波那契数,一边计算左边的数和输入的N值进行差值运算,直到N比斐波那契数小就直接退出。 二、代码 int main() { int a=0; int b=1; int c=1; int left=0; int right=0; int N=0; cin>>N; whil...原创 2018-07-27 11:17:03 · 656 阅读 · 0 评论 -
输出链表中倒数第K个结点
1.结构体类型 struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; 2.解析 主要考察的是鲁棒性,使程序保持健壮性。 定义一个快指针,定义一个慢指针,让快指针先走K步,然后快慢指针一块走,当快指针走到...原创 2018-07-31 11:03:07 · 362 阅读 · 0 评论 -
逆置链表
题目:将一个链表逆置 解析:使用三个指针,前、中、后,改变中指针,遍历后指针。 ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL||pHead->next==NULL) { return pHead; } ListNode* pro=NULL; ListNode...原创 2018-07-27 21:48:05 · 387 阅读 · 0 评论