摘要: 题目意思:全排列思路:其实看这题目意思,是不太希望用递归的,不过还是用了递归,非递归的以后再搞吧 ps:vector这玩意不能随便返回,开始递归方法用vector,直接到500ms,换成void,到12ms 1 class Solution { 2 public: 3 vector> pe... 阅读全文
posted @ 2015-06-14 21:54 影翕 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 题目意思:如果有环,返回入口结点思路:先判断有没环,再计算环的结点数,然后p1指向头,p2往后移结点次数,p1、p2相遇为入口结点 ps:还是利用指针间距这个思路 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode ... 阅读全文
posted @ 2015-06-14 17:10 影翕 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目意思:链表有环,返回true,否则返回false思路:两个指针,一快一慢,能相遇则有环,为空了没环 ps:很多链表的题目:都可以采用这种思路 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * ... 阅读全文
posted @ 2015-06-14 16:06 影翕 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题目意思:去掉链表中倒数第n个节点思路:1.两次遍历,没什么技术含量,第一次遍历计算长度,第二次遍历找到倒数第k个,代码不写了 2.一次遍历,两个指针,用指针间的距离去计算。 ps:特别注意删掉第一个节点的情况,在前面加个头结点,则变为了删除第二个节点的情况 1 /** 2 * Defin... 阅读全文
posted @ 2015-06-14 15:27 影翕 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题目意思:在递增数组中找到目标数的位置,如果目标数不在数组中,返回其应该在的位置。思路:折半查找,和相邻数比较,注意边界 1 class Solution { 2 public: 3 int searchInsert(vector& nums, int target) { 4 ... 阅读全文
posted @ 2015-06-14 11:58 影翕 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目意思:对两个递增链表进行归并排序思路:没什么好说的,二路归并 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ... 阅读全文
posted @ 2015-06-14 11:02 影翕 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目意思:二叉树中序遍历,结果存在vector中解题思路:迭代迭代实现: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6... 阅读全文
posted @ 2015-06-14 09:06 影翕 阅读(141) 评论(0) 推荐(0) 编辑