随笔分类 -  算法

1 2 3 下一页
剑指offer57 删除链表中重复的结点
摘要:要注意判断指针是否存在,以及大于2个以上的连续结点重复的情况。 阅读全文
posted @ 2016-09-08 17:08 summerkiki 阅读(206) 评论(0) 推荐(0)
Longest Palindromic Substring
摘要:求最长回文子串: 回文串是指正着读和反过来读都一样的字符串。 方法: 1. 为了统一解题方法,避免字符串长度奇偶对解题方法的影响,加入了填充字符。若原来的字符串长度为n,则新的字符串长度为2n+1。 2. pos+p[pos] 表示的是目前所有回文子串中,向右达到的最远位置。 3. 先利用对称性,找 阅读全文
posted @ 2016-08-30 23:15 summerkiki 阅读(201) 评论(0) 推荐(0)
Median of Two Sorted 求两个有序数组的中位数
摘要:中位数是把一个数的集合划分为两部分,每部分包含的数字个数相同,并且一个集合中的元素均大于另一个集合中的元素。 因此,我们考虑在一个任意的位置,将数组A划分成两部分。i表示划分数组A的位置,如果数组A包含m个元素,则划分位置有m+1种情况。因此,i的取值范围是0~m。 当i=0时,表示left_A为空 阅读全文
posted @ 2016-08-17 20:20 summerkiki 阅读(3115) 评论(0) 推荐(0)
Search for a range
摘要:用二分查找法,分别查找重复数字的第一个位置和最后一个位置。 注意数组的下标范围, 阅读全文
posted @ 2016-08-16 21:07 summerkiki 阅读(152) 评论(0) 推荐(0)
Longest Substring Without Repeating Characters 最长不重复子串
摘要:只遍历一次字符串即可求出最长不重复子串的长度。 这种解法其实蕴含的就是动态规划的思想,只是写法非常的简便。 这道题动态规划的思路是: 遍历字符串的每一个字符i: 1. 若从当前不重复子串的起始位置开始,没有字符与i相同,则字符i可以添加进当前不重复子串,且当前不重复子串长度加1 2. 若从当前不重复 阅读全文
posted @ 2016-08-09 22:52 summerkiki 阅读(282) 评论(0) 推荐(0)
Single NumberII
摘要:**一定要注意 == 运算符的优先级高于& 因此在条件判断的时候 必须加括号 阅读全文
posted @ 2016-07-26 12:12 summerkiki 阅读(139) 评论(0) 推荐(0)
Single Number
摘要:此题考察的是位运算的思想。 异或运算符是^,与运算符是&,或运算符是| 阅读全文
posted @ 2016-07-26 09:42 summerkiki 阅读(191) 评论(0) 推荐(0)
Balanced Binary Tree
摘要:class Solution { public: int depth(TreeNode* root) { if(!root) return 0; int nleft=depth(root->left); int nright=depth(root->right); retu... 阅读全文
posted @ 2016-07-20 10:54 summerkiki 阅读(132) 评论(0) 推荐(0)
Linked List Cycle II
摘要:leetcode上有一个分享的解法很清晰: Alogrithm Description: Step 1: Determine whether there is a cycle 1.1) Using a slow pointer that move forward 1 step each time 1 阅读全文
posted @ 2016-06-07 15:32 summerkiki 阅读(213) 评论(0) 推荐(0)
Linked List Cycle
摘要:class Solution { public: bool hasCycle(ListNode *head) { if(!head) return NULL; ListNode* fast=head; ListNode* slow=head; while(fast->next&&fast->next... 阅读全文
posted @ 2016-06-07 14:41 summerkiki 阅读(181) 评论(0) 推荐(0)
剑指offer35 第一个只出现一次的字符
摘要:字符char是一个长度为8的数据类型,总共有256种可能。因此创建一个长度为256的数组,每个字母根据其ASCII码值作为数组的下标对应数组的一个数字,而数组中存放的是每个字符出现的次数。 阅读全文
posted @ 2016-06-02 19:06 summerkiki 阅读(225) 评论(0) 推荐(0)
Largest Number
摘要:代码中使用到了C++ 11的新特性 lambda函数,可见:http://www.cnblogs.com/slysky/p/3945126.html string类型特有的对象方法:s.erase(pos,len) 删除从下标pos开始的len个字符 string to_string(int val 阅读全文
posted @ 2016-06-01 11:16 summerkiki 阅读(125) 评论(0) 推荐(0)
Permutations II
摘要:class Solution { public: void swap(int& a, int&b) { int temp=a; a=b; b=temp; } bool ifduplicate(vector nums, int n, int i) { while(n>& res, vector... 阅读全文
posted @ 2016-05-31 20:58 summerkiki 阅读(119) 评论(0) 推荐(0)
Next Permutation
摘要:题目要求:从当前排列生成字典序刚好比它大的下一个排列 思路: 1. 如果一个数右边有比它大的数,那么它就能增大。又因为要寻找刚好比当前值大的下一个排列,所以要先寻找最后一个能增大的数A,其位置为i(位置最低) 2. 使A增大为它右边比它大的最小的数B,交换A和B(如果A右边有多个B,则取位置最低的B 阅读全文
posted @ 2016-05-31 20:27 summerkiki 阅读(202) 评论(0) 推荐(0)
Permutations
摘要:class Solution { public: void swap(int &a, int &b) { int temp; temp=a; a=b; b=temp; } void permutation(vector& nums, vector>& res, int n) { ... 阅读全文
posted @ 2016-05-31 11:22 summerkiki 阅读(207) 评论(0) 推荐(0)
剑指offer32 整数中1出现的次数(从1到n整数中1出现的次数)
摘要:class Solution { public: int NumberOf1Between1AndN_Solution(int n) { if(n<=0) return 0; int count=0; int i=1; while(i<=n) { int... 阅读全文
posted @ 2016-05-28 21:54 summerkiki 阅读(102) 评论(0) 推荐(0)
Ugly Number
摘要:解题思路的几个关键: 1. 丑数应该是另一个丑数乘以2、3或者5的结果(1默认为丑数) 2. 要确保丑数是排好序的,因此可以考虑把已有的每个丑数乘以2、3和5,选择其中大于当前最大丑数M的最小值,作为下一个丑数 3. 由于数组中的丑数是按序排放,对于乘以2而言,肯定存在某一个丑数T2,排在它之前的每 阅读全文
posted @ 2016-05-28 12:09 summerkiki 阅读(177) 评论(0) 推荐(0)
Maximum Subarray
摘要:class Solution { public: int maxSubArray(vector& nums) { int n=nums.size(); if(n==0) return 0; int sum=0; int max=INT_MIN; for(int i=0;imax) ... 阅读全文
posted @ 2016-05-26 14:04 summerkiki 阅读(104) 评论(0) 推荐(0)
剑指offer 27二叉搜索树与双向链表
摘要:二叉搜索树的前序遍历就是从小到大输出,因此这里是在中序遍历的基础上进行链表操作。left指针指向前一个数,right指针指向后一个数,在cur结点,设置其left指针,并设置pre结点的right指针。这样递归地把树改为链表。 阅读全文
posted @ 2016-05-26 09:37 summerkiki 阅读(144) 评论(0) 推荐(0)
剑指offer26 复杂链表的复制
摘要:要注意各种指针为空的边界条件。在split函数中,必须一趟完成两个链表的拆分,不然就会出现超时错误。 阅读全文
posted @ 2016-05-25 10:49 summerkiki 阅读(140) 评论(0) 推荐(0)

1 2 3 下一页