这道题简直是耻辱啊,居然被吓得不敢做,终于开始写还犯下了各种低级错误,花了好久的时间。
其实如果想明白81*9其实是很小的规模的话,早就想到用回溯法了,这不是跟八皇后完全一样的嘛。每次填入的时候,验证一下合不合理,其中合不合理在上一个问题中已经讨论过了,对当前位置讨论更简单。
所的头头是道,你会问“那你是错在哪呢?”你猜啊。我在判断一个小方格时候合理时,走了很多弯路。一开始想的是用循环和减法,...
分类:
其他好文 时间:
2014-05-15 14:37:04
阅读次数:
203
本文分别用非递归和递归两种方式实现了链表的反转,在九度OJ上测试了非递归版本,AC。
题目描述:
输入一个链表,反转链表后,输出链表的所有元素。
(hint : 请务必使用链表)
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000):代表将要输入的链表的个数。
输入的第二行包含n个整数t(0<=t<=1000000):代表链表元素。
输出:
对应每个测试案例,
以此输出链表反转后的元素,如没有元素则输出NULL。
样例输入:...
分类:
其他好文 时间:
2014-05-15 06:41:12
阅读次数:
315
题意:给定一棵任意二叉树(不一定是perfect binary tree),将它每一个节点的next指针都指向该节点右边的节点
思路:bfs
这里不能用dfs了,只能用bfs
bfs遍历将同一层的节点存放在同一个数组里,
然后在遍历每个数组,将前面的节点和后面的节点connect起来,
最后一个节点和NULL connect起来
需要定义一个新的struct结构,保存指向每个节点的指针和该节点所在的层
复杂度:时间O(n), 空间O( n)...
分类:
其他好文 时间:
2014-05-15 06:12:13
阅读次数:
294
题意:输出一个元素在一个已排序的数组中的位置,如果不存在输出它应该插入的位置
思路:二分查找,如果找到就输出位置,找不到就输出它应该插入的位置
复杂度:时间O(log n),空间O(1)
相关题目:
Search for a Range
Search a 2D Matrix...
分类:
其他好文 时间:
2014-05-15 05:57:32
阅读次数:
271
啊啊啊啊,好怀念这种用递归保存路径然后打印出来的题目啊,好久没遇到了。
分了两种,一种是可以重复使用数组中数字的,一种是每个数字只能用一次的。其实没有多大区别,第一种每次进入递归的时候都要从头开始尝试,第二种要找一个标记的数组,把已经用到过的排除掉,就像生成全排列时的做法一样。跟我一样用引用保存中间结果的话,要注意回退的情况。第二种回退时,要把用到的那个数也恢复为可用,就完全像全排列时做的一样。...
分类:
其他好文 时间:
2014-05-15 04:46:34
阅读次数:
272
方法一:直接定义并且初始化,这种遇到数量少的情况可以用
var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]]
方法二:未知长度的二维数组
var tArray = new Array(); //先声明一维
for(var k=0;k
tArray[k]=new Array(); //声明二维,每一个一维...
分类:
Web程序 时间:
2014-05-15 04:11:33
阅读次数:
359
前言
学习任何一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的“多谋善断";本系列虽然涉及的是socket相关的知识,但学习之前,更想和广大程序员分享的是一种心境:学习是一个循序渐进的过程,心态应该随时调节,保持戒骄戒躁的状态。比如最近在看网易公开课MIT《算法导论》,老师提到,学习算法之前要计算机数学+离散数学+概率论等课程的知识,所以一直学不好算...
分类:
编程语言 时间:
2014-05-15 03:40:31
阅读次数:
279
这题那时怎么想就是想不出来……而且今晚没有多大状态,自己都晕了……一题没做出来……
baoge解释好久才懂……唉……线段树,树状数组用得还是不够熟啊……
WA了二发,才知道二分错了,二分好久不用,老是出错了现在……
#include
#include
#include
#include
#define sca(a) scanf("%d",&a)
#define mem(a,b) memset...
分类:
其他好文 时间:
2014-05-15 03:30:49
阅读次数:
223
一开始没看清题,以为让当场求数独呢,吓得一直没敢做。后来发现这个题原来如此之简单,只要判断现在棋盘上的数字满不满足情况要求就可以了。
这不就是三次循环吗。。看看每一行满不满足,每一列满不满足,每个小的3*3的格子满不满足就行了。每个小3*3格子我是用求得左上角的方法来验证的。
其实觉得数独难还有一个原因是记得他在编程之美上出现过。。那上面讨论的主要是怎样构造一个数独,具体记不太清楚了,印象最深...
分类:
其他好文 时间:
2014-05-15 03:19:11
阅读次数:
185
最近写程序遇到一个问题,就是发现select监听标准输出的时候遇到了死循环,具体程序如下程序一。程序的意图是每当用户在控制台有任何输入,就输出”hello world!”。
程序一:
#include
#include
#include
#include
int
main(int argc, char *argv[])
{
...
分类:
其他好文 时间:
2014-05-14 14:46:25
阅读次数:
250