![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
砺晗
宝剑锋从磨砺出,梅花香自苦寒来
展开
-
LeetCode——20. Valid Parentheses
思想很简单,最简单的想法就是用个栈,匹配就出栈,否则入栈,但是时间略长,才能beats百分之十几。。。参考别人算法稍加改进后得到如下算法:beats84%public class Solution { public boolean isValid(String s) { Stack stack = new Stack(); for (char c : s.toCharArray())原创 2017-01-28 14:26:06 · 205 阅读 · 0 评论 -
LeetCode——2. Add Two Numbers
时间复杂度O(n),beat 89%public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { int sign=0; int num1=0; int num2=0; int sum=0; int result; ListN原创 2017-01-20 09:58:09 · 209 阅读 · 0 评论 -
LeetCode——3. Longest Substring Without Repeating Characters
采用动态规划算法,beat 90.53%public class Solution { public int lengthOfLongestSubstring(String s) { if(s.length()==0) return 0; if(s.length()==1) return 1; int ma原创 2017-01-20 11:04:32 · 211 阅读 · 0 评论 -
LeetCode——9. Palindrome Number
通过直接return(sum==x)而不是赋值返回,大大提高效率,beat 80%public class Solution { public boolean isPalindrome(int x) { if(x<0) return false; int num=x; int sum=0; while(num!=0原创 2017-01-21 21:27:17 · 213 阅读 · 0 评论 -
LeetCode——5. Longest Palindromic Substring
采用动态规划算法,相当悲哀。。。才beat 13%public class Solution { public String longestPalindrome(String s) { int len=s.length(); int leftIndex=0,rightIndex=0; int maxLen=1; if(s.原创 2017-01-21 21:32:55 · 258 阅读 · 0 评论 -
LeetCode——7. Reverse Integer
beats 76%public class Solution { public int reverse(int x) { long result=0l; long num=x>0?(long)x:-(long)x; while(num!=0){ result=(result*10+num%10); num/=10;原创 2017-01-21 22:04:02 · 285 阅读 · 1 评论 -
LeetCode——8. String to Integer
beats 66%public class Solution { public int myAtoi(String str) { String myStr=str.trim(); if(myStr.equals("")) return 0; char curChar; long result=0l; int si原创 2017-01-21 22:45:50 · 210 阅读 · 0 评论 -
LeetCode——6. ZigZag Conversion
beats 72%public class Solution { public String convert(String s, int numRows) { if(s.equals("")) return ""; if(numRows==1 || numRows==s.length()) return s; int dis=原创 2017-01-21 23:40:48 · 232 阅读 · 0 评论 -
LeetCode——14. Longest Common Prefix
beats 67%public class Solution { public String longestCommonPrefix(String[] strs) { int len=strs.length; int endIndex=-1; int i=0; boolean flag=true; if(len==0) return ""; while(f原创 2017-01-22 18:02:43 · 218 阅读 · 0 评论 -
LeetCode——11. Container With Most Water
beats91%算法思想,设一个left指针指向数组最左边和一个right指针指向数组最右边,计算他们之间的容量为height[left]和height[right]中较小者乘以宽度right-left,然后移动指针,移动指针后宽度变小,要使容量增大,必须height增加,所以移动height较小的指针,时间复杂度为O(N)public class Solution { publi原创 2017-01-23 09:34:35 · 262 阅读 · 0 评论 -
LeetCode——16. 3Sum Closest
beats 85%和上一题3Sum一样的思想,但是扫描到一个三元组检查一下是不是最优的,复杂度n平方,很重要的一点是监测到sum==target的时候直接return,这样从beats 22%一下子提高到85%public class Solution { public int threeSumClosest(int[] num, int target) { int原创 2017-01-23 22:43:50 · 227 阅读 · 0 评论 -
LeetCode——19. Remove Nth Node From End of List
大年初一来一题:思想很简单,就是两个指针相距n,后一个指针走到尾节点时前一个指针的下一个节点即为要删除的节点,思想简单,但是不同的写法时间复杂度相差不小,经过优化,下列算法beats59%public class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode preDe原创 2017-01-28 12:31:11 · 216 阅读 · 0 评论 -
LeetCode——1.Two SUM
import java.util.*;public class Solution { public int[] twoSum(int[] nums, int target) { Integer left,right; int[] result=new int[2]; Map myMap=new HashMap(); for(原创 2017-01-20 09:53:25 · 246 阅读 · 0 评论