自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode解法java:9. Palindrome Number

思路:查询是否是回文数其实就是很简单的反转该数,然后对比两个数是否相等,非常简单的题。public boolean isPalindrome(int x) { if (x < 0) return false; int result = 0, source = x; while (x != 0) { result *= 10; resul...

2018-03-21 15:28:56 261

原创 LeetCode解法java:8. String to Integer (atoi)

思路:题目没有什么难的,就是把string转换成integer。需要注意的是有些坑,首先要去头尾的空格,其次+-号只能有一个,如果中间出现不是数字的情况,直接截断数字。String的值如果比integer的极限还大(小)的时候,返回极值就可以,所以推荐用long去接收这个数字,然后再判断边界。其实用integer接收数字也行,只要除以10,然后再判断尾数就可以,但是性能上的差距可以忽略不计,所以此...

2018-03-21 15:26:05 214

原创 LeetCode解法java:7. Reverse Integer

思路:反转Integer,非常简单的一道题,只需要用一个result不断接收参数的每一位,然后对result做乘10操作,对参数做除10操作就行。其中就一个坑,接收的参数反转过来之后有可能大于或者小于Integer的边界值2^31。所以用long进行接收,如果判断大于边界值,则返回0。public int reverse(int x) { long result = 0; whil...

2018-03-20 16:01:48 192

原创 LeetCode解法java:6. ZigZag Conversion

题目没太明白,题目描述太少了,先占个坑以后再写 (逃

2018-03-20 15:53:52 138

原创 LeetCode解法java:5. Longest Palindromic Substring

思路:对整个string的每一个字母都做一个查询最长回文数操作,回文数分奇偶,首先进行奇数回文数查询,如果该字母和下一个字母相同,则也进行偶数回文数查询,然后用end-start记录最长length,返回即可。最简单的解法,应该还有优化空间。public String longestPalindrome(String s) { int start = 0, end = 0; cha...

2018-03-20 15:35:54 197

原创 LeetCode解法java:4. Median of Two Sorted Arrays

思路:这个题需要求中位数,有两个思路:1.直接将两个数组放到一个数组里排序2.因为两个数组是有序数组,所以用归并排序的思路对数组进行处理,也可以达到给数组排序的效果,但是时间复杂度能达到O(log (m+n))思路1:的代码,直接调用java本身给出的api,将两个数组放到一个长度为两个数组之和的数组里,然后将数组排序,取中间的一个或两个数的平均数,返回就可以了,时间复杂度O(nlogn)。pub...

2018-03-20 14:19:13 160

原创 LeetCode解法java:3. Longest Substring Without Repeating Characters

思路:最开始是想两层循环,其中第一层循环维护一个map去搞定这个事情,后来发现有更优的解法,直接分析更优的解法。首先这是一个字母字符串,可以理解为ISO-8859-1编码的字符串,只有256位,所以完全没有必要用character的map,维护一个256位的int数组就可以一一对应上每个字母。这个思路需要维护字符串的起始位和结束位两个角标位置,分别为left和right,每次循环到一个字母时,就给...

2018-03-19 17:27:47 262

原创 LeetCode解法java:2.Add Two Numbers

这题有两种解法思路,1.递归,2.循环。1.递归最开始是想添加一个新方法专门做递归,后来考虑直接用第一个参数l1作为result。首先考虑l1或者l2为空的情况,直接return另一个链表就行。在两个链表都为不为空的时候将l1和l2的数字加起来赋值给l1,然后处理一下超过10的情况,之后将l1.next和l2.next进行递归就行。在提交的时候发现有一种可能就是在l2为null的时候,l1刚好因为...

2018-03-19 17:11:03 159

原创 LeetCode解法java:1. Two Sum

解法思路:维护一个map,key为数组中的数字,value为此数在数组中的位置。在循环的时候,做一个判断,如果当前数字存在与map中的某个数字的和符合题目要求(即为0),直接return这两个数字的位置,否则将这个数添加进map中。public int[] twoSum(int[] nums, int target) { int capacity = 1; while (nums....

2018-03-19 17:01:12 157

空空如也

空空如也

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

TA关注的人

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