上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 23 下一页
摘要: 原题地址心得:做链表类题目,多用中间变量,代码的可读性比简洁性更重要,适当注释。在纸上画画图,看看各操作节点的next指针最后都指对了没。代码: 1 ListNode *swapPairs(ListNode *head) { 2 if (!head) 3 r... 阅读全文
posted @ 2015-01-29 17:40 李舜阳 阅读(168) 评论(0) 推荐(0)
摘要: 原题地址心得:有关链表的题目,多用中间变量,代码写得清晰一点,适当注释代码: 1 ListNode *insertionSortList(ListNode *head) { 2 if (!head) return NULL; 3 4 ListNode... 阅读全文
posted @ 2015-01-29 17:28 李舜阳 阅读(178) 评论(0) 推荐(0)
摘要: 原题地址中序遍历二叉树,如果出现逆序对,则说明不是合法BST代码: 1 bool isValidBST(TreeNode *root) { 2 stack st; 3 int last = 0; 4 bool hasLast = false; 5 ... 阅读全文
posted @ 2015-01-29 17:11 李舜阳 阅读(125) 评论(0) 推荐(0)
摘要: 原题地址动态规划,根据二叉树的根节点将原问题划分为两个子问题。代码: 1 int numTrees(int n) { 2 vector num(n + 1, 0); 3 4 num[0] = 1; 5 for (int i = 1; ... 阅读全文
posted @ 2015-01-29 15:07 李舜阳 阅读(202) 评论(0) 推荐(0)
摘要: 原题地址考察非递归写法。前序遍历可以参考这篇文章,后序遍历可以参考这篇代码: 1 vector inorderTraversal(TreeNode *root) { 2 TreeNode *node = NULL; 3 stack st; 4 vect... 阅读全文
posted @ 2015-01-29 14:36 李舜阳 阅读(134) 评论(0) 推荐(0)
摘要: 原题地址DFS注意以下几点:1. IP地址中间的数字范围是0~2552. IP地址中间的数字不能有前导0(0除外)3. 如果原IP串长度超过12就不用做了,直接返回空代码: 1 vector res; 2 3 void dfs(string &s, vector ans, int pos,... 阅读全文
posted @ 2015-01-29 14:28 李舜阳 阅读(170) 评论(0) 推荐(0)
摘要: 原题地址第一步,找到将要翻转的位置,记录翻转部分前一个节点(prev)第二步,翻转,记录翻转完成后这部分的首(reverseHead)和尾(reverseTail),以及翻转部分之后的一个节点(post)第三部,将prev、reverseHead、reverseTail、post连接起来代码: 1 ... 阅读全文
posted @ 2015-01-29 14:00 李舜阳 阅读(163) 评论(0) 推荐(0)
摘要: 原题地址跟Subsets(参见这篇文章)类似。但因为有重复元素,所以要考虑去重问题。什么情况下会出现重复呢?比如S = {5, 5, 5},如果要选1个5,一共有C(3,1)=3种选法,即100, 010, 001,这三种情况在集合的角度看是重复的情况。如果要选2个5,共有C(3,2)=3种选法,即... 阅读全文
posted @ 2015-01-29 12:21 李舜阳 阅读(203) 评论(0) 推荐(0)
摘要: 原题地址动态规划题,注意0导致的小陷阱。代码: 1 int numDecodings(string s) { 2 if (s.empty() || s[0] '9') return 0; 3 4 int sum = s[s.length() - 1... 阅读全文
posted @ 2015-01-29 11:48 李舜阳 阅读(172) 评论(0) 推荐(0)
摘要: 原题地址凡是涉及链表的题目,代码越清楚越好。代码: 1 ListNode *partition(ListNode *head, int x) { 2 ListNode *ltHead = NULL; 3 ListNode *ltTail = NULL; 4 ... 阅读全文
posted @ 2015-01-29 11:06 李舜阳 阅读(194) 评论(0) 推荐(0)
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 23 下一页