LeetCode 2 :两数相加
题目:
思路:
注意:1.返回值类型是一个节点ListNode;
代码:
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode result = new ListNode(0);
ListNode p=l1,q=l2,temp=result;
int jinwei = 0;
while(p!=null|q!=null) {
int sum = 0;
int x = (p!=null) ? p.val : 0;
int y = (q!=null) ? q.val : 0;
sum = x+y+jinwei;
jinwei = sum/10;
temp.next = new ListNode(sum%10);
temp = temp.next;
if(p!=null) p = p.next;
if(q!=null) q = q.next;
}
if(jinwei!=0)
temp.next = new ListNode(jinwei);
return result.next;
}
LeetCode3:无重复字符的最长子串
题目:
给定一个字符串,找出不含有重复字符的 最长子串 的长度。
示例:
给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。
给定 “bbbbb” ,最长的子串就是 “b” ,长度是1。
给定 “pwwkew” ,最长子串是 “wke” ,长度是3。请注意答案必须是一个子串,“pwke” 是 子序列 而不是子串
思路:
暴力
代码:
public static int lengthOfLongestSubstring(String s) {
int max=0;
for(int i=0;i<s.length();++i) {
StringBuilder sb = new StringBuilder();
sb.append(s.charAt(i));
for(int j =i+1;j<s.length();++j) {
if(sb.indexOf(""+s.charAt(j))!=-1)
break;
else
sb.append(s.charAt(j));
}
max = (max>sb.length())?max:sb.length();
}
return max;
}
LeetCode7整数反转
题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
代码:
public int reverse(int x) {
int result = 0;
while(x!=0) {
int pop = x%10;
x = x/10;
if(result > Integer.MAX_VALUE/10 ||result == Integer.MAX_VALUE/10&&pop>7 )
return 0;
if(result < Integer.MIN_VALUE/10 ||result == Integer.MIN_VALUE/10&&pop<-8 )
return 0;
result = result*10+pop;
}
return result;
}
Leet9
if(x<0) return false;
int result = 0,pop=0,temp=x;
while(temp!=0) {
pop=temp%10;
temp = temp/10;
result = result*10+pop;
}
return (result==x)?true:false;