双向(循环)链表是线性表的链式存储结构的又一种形式。
在之前已经讲述了单向链表和循环链表。相比于单向链表只能从头结点出发遍历整个链表的局限性,循环链表使得可以从任意一个结点遍历整个链表。
但是,不管单向链表也好,循环链表也罢,都只能从一个方向遍历链表,即只能查找结点的下一个结点(后继结点),而不能查找结点的上一个结点(前驱结点)。鉴于上述问题,引入了双向链表。由于双向循环链表包含双向链表的所有...
分类:
其他好文 时间:
2014-05-18 18:43:19
阅读次数:
341
数字三角形
描述:
有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外没个数的左下方
和右下方各有一个数。
问题:
从第一行的数开始,每次可以往左下或右下走一格,直到走到最下行,把沿途经过的数
全部加起来。如何走才能使得这个和尽量大?
分析:
不难看出此...
分类:
其他好文 时间:
2014-05-18 18:26:02
阅读次数:
299
1、算法思想描述: 1)将相邻的两个数进行比较,如果前面的一个大于后面的一个,则将他们交换。每次循环能使一个数达到有序状态。2、时间复杂度: 平均O(n^2)3、实现及优化。以下给出三种实现方式/*
* bubblesort.cpp
*
* Created on: 2014年5月17日
* Author: pc
*/
#include
#include
#inc...
分类:
其他好文 时间:
2014-05-18 15:34:55
阅读次数:
198
【题目】
Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
【题意】
删除数组中指定的值。不关心在新数组的后面即数组尾部留下了什么值。
【思路】
思路同Remo...
分类:
其他好文 时间:
2014-05-18 14:53:56
阅读次数:
208
题目:给一个数组和给定的目标值,要求在数组里找出三个元素,这三个元素的和最接近目标值,当然等于是最好的。
用3sum的方法,把判定条件作些修改。
int twoSum(vector &num, int start, int target)
{
if(num.size() = num.size())
return -target;
int head = start;
int t...
分类:
其他好文 时间:
2014-05-18 10:49:12
阅读次数:
217
题目连接:Codefoces 432C Prime Swaps
题目大意:给出一个序列,长度为n,要求用5n以内的交换次数使得序列有序,并且交换的i,j两个位置的数时要满足,j?i+1为素数。
解题思路:a数组为对应的序列,b数组为对应的有序序列,p为对应数的位置。每次从有序序列最小的位置开始,该为必须放b[i]才对,所以p[b[i]]=i,否则就要将b[i]尽量往前换,直到换到i的位...
分类:
其他好文 时间:
2014-05-18 09:51:47
阅读次数:
221
Android Intent传递对象小结
Intent 传递复杂类型,例如:数组,ArrayList类型,传递类对象...
分类:
移动开发 时间:
2014-05-18 06:54:14
阅读次数:
338
题目:
输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。效率尽可能高。
例如:
f(2)=1
f(12)=5
f(20)=12
f(115)=44
解决方案:
最简单的方法是从1到n循环处理,计算每个数中1的个数,累加起来。这个效率很低。
第二种方法是累加从1到n的所有数的个位十位百位等等上面1的个数,对于32位整数运算次数不超过10次。
int n...
分类:
其他好文 时间:
2014-05-18 04:41:55
阅读次数:
197
本题大概题意:
给出一个数组DNA,包含10个数值,如:DNA[10] = {0,1,2,3,,1,2,3,0,1,2}所有数值应该不大于3.
给出一行40个字符的字符串: 空格代表0, '.'代表1,'x'代表2,'W'代表3。 相邻三个数值(或两个数值)相加得到的数作为DNA的下标,然后取DNA数组改下标的数值为新的值。产生新的字符串。
好难说清楚,看原文吧,的确是很难理解的题目:
h...
分类:
其他好文 时间:
2014-05-18 03:14:55
阅读次数:
287
统计一个数字在排序数组中出现的次数。例如输入{2,2,2,2,2,3,5,5}和数字2,输出5.常规的顺序扫描法时间复杂度是O(n),可以进一步优化。用二分查找的方法进行查找可以把时间复杂度降为O(logn)。
分类:
其他好文 时间:
2014-05-17 22:22:39
阅读次数:
256