自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 9. Palindrome Number [LeetCode]

判断一个数是否是回文数。由于负数有符号,所以所有负数都不是回文数。由于最高位不为0,如果整数x是10的倍数(不为零),则整数x一定不是回文数。 这道题参考第8题将整数反转的方法,将整数x的后半部分反转同x的前半部分比较,如果相同或者后面部分正好是前面部分的10倍时,这个数是回文数,其它则不是回文数。 class Solution { public boolean isPalindro...

2018-08-06 11:55:06 86

原创 7. Reverse Integer [LeetCode]

题目是将一个32位有符号整数反转,例如-123 -> -321 。 将一个整数反转,如果不考虑边界问题,将整数x取余k,再将x除10,将反转数y乘10再加上k,不断重复直到x=0即可。 需要注意,JAVA负数取余,余数与被除数的符号保持一致,所以此方法不用特意讨论整数的正负。 然后对边界进行讨论,32位有符号整数的范围是-2147483648 ~ 2147483647,每次在处理y之前...

2018-08-06 09:55:18 85

原创 5. Longest Palindromic Substring [LeetCode]

第五题最长回文子串 这道题做法比较多,时间复杂度为O(n)的马拉车算法我还没看明白,这里只讲我用的动态规划的方法。 dp[j][i]表示从j到i的字符串是否是回文子串。 dp[i][i]=true,dp[i][i+1]=(s[i]==s[i+1])。 其他情况,只有s[j+1,i-1]是回文子串,并且是s[i]==s[j],s[i,j]才是回文子串。 即dp[j][i]=(s[i]==s...

2018-07-13 13:16:05 95

原创 6. ZigZag Conversion [LeetCode]

第六题Z形转换,是一道找规律的题。 如果是第一行和最后一行,每两个字符中间相差2*numRows-2。 其他行,竖着的字符之间相差2*numRows-2,斜着的字符为j+2*numRows-2-2i(i为行数,j为当前竖着的字符在原字符串的位置)。 class Solution { public String convert(String s, int numRows) { ...

2018-07-13 11:53:49 97

原创 4. Median of Two Sorted Arrays [LeetCode]

第四题是求两个有序数组的中位数,比如nums1[1]=[1,2], nums2=[3,4], 那么中位数是2.5。 这道题的时间复杂度要求log(m+n),可以用二分查找。 如何在两个数组上进行二分查找?  在较短的那个数组上[l,r]区间查找,比较nums1[i-1]和nums2[j],nums1[i]和nums2[j-1]的关系。 如果nums1[i]>=nums2[j-1], ...

2018-07-12 09:37:18 62

原创 3. Longest Substring Without Repeating Characters [LeetCode]

算法第三题,求最长不重复子串。 left代表子串开始的位置,lastpos数组编号代表每个ASCII码,值记录上次出现这个ASCII码的字符的位置。从左到右扫描字符串,如果当前字符没有出现过,记录此字符在字符串中的位置;如果出现过,更新left值,并记录字符出现的新位置。每次扫描计算当前子串长度cur,取最大值。 class Solution { public int lengthO...

2018-07-10 13:57:47 160

原创 2. Add Two Numbers [LeetCode]

LeetCode算法第二题Add Two Numbers,求两个正整数的和,其中正整数用链表反向存储。 例:  输入(2-> 4 -> 3) + (5 -> 6 -> 4)          输出 7 -> 0 -> 8         解释 342 + 465 = 807 这题就是链表的基本操作和加法的运算法则相结合,比较简单。主要注意进位carry的...

2018-07-10 11:58:58 98

原创 1.Two Sum [Leet Code]

决定开始刷LeetCode了,记录一下自己对每道题的理解。 Two Sum是第一题,是求一个数组中的哪两个数字加起来等于target。 1.暴力搜索。对数组中的每个元素遍历,搜索其后的元素有没有等于target-nums[i]的。 class Solution { public: vector<int> twoSum(vector<int>& num...

2018-07-10 11:46:51 128

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除