2013年9月28日

Unique Paths

摘要: 最开始使用带记录的递归,结果还是超时,然后改成动规打表以后就通过了。使用三层循环,最外层为长或宽的最大值,复杂度为O(n^3)。 int record[101][101]; void initialize(){ int i, j, k; for(i = 1; i < 101; i++){ record[1][i] = 1; record[i][1] = 1; } for(i = 2; i < 101; i++){ for(j = 2; j <= i; j++){... 阅读全文

posted @ 2013-09-28 20:16 waruzhi 阅读(130) 评论(0) 推荐(0) 编辑

Swap Nodes in Pairs

摘要: 考察指针的使用,但是写的过程中遇到一些问题,主要是写之前没想清需要用到哪些额外的指针。最后解决方案里有4个指针,result记录结果,tmp1和tmp2分别记录前后两个要交换的指针,next记录下面一组指针的第一个指针。解决办法比较笨,应该有简洁的方法,第二遍刷的时候细究吧。 ListNode *swapPairs(ListNode *head) { // Start typing your C/C++ solution below // DO NOT write int main() function if(head == NULL || he... 阅读全文

posted @ 2013-09-28 19:41 waruzhi 阅读(183) 评论(0) 推荐(0) 编辑

Convert Sorted Array to Binary Search Tree

摘要: 使用分治的方法,递归地将数组转成二叉树。这道题提交的时候出现了很多错误,主要问题出在vector、iterator的使用,以及结构体指针的初始化上。代码如下: TreeNode *sortedArrayToBST(vector &num) { // Start typing your C/C++ solution below // DO NOT write int main() function int len = num.size(); if(len == 0) return NULL; Tre... 阅读全文

posted @ 2013-09-28 16:41 waruzhi 阅读(113) 评论(0) 推荐(0) 编辑

Populating Next Right Pointers in Each Node

摘要: 因为是完全二叉树,所以根节点的左节点的next是根节点的右节点,右节点的next是根节点的左节点。递归实现。 1 void connect(TreeLinkNode *root) { 2 // Start typing your C/C++ solution below 3 // DO NOT write int main() function 4 if(root != NULL){ 5 if(root->left) 6 root->left->next = root->right;... 阅读全文

posted @ 2013-09-28 09:53 waruzhi 阅读(160) 评论(0) 推荐(0) 编辑

导航