
leetcode day1 1~5
#1 Two Sum
用HashMap空间换时间, time: O(n), space: O(n)
public class Solution {
public int[] twoSum(int[] nums, int target) {
int[] result=new int[2];
Map<Integer, Integer> targetMap=new HashMap<Integer, Integer>();
for(int i=0;i<nums.length;i++){
if(targetMap.containsKey(nums[i])){
result[0]=targetMap.get(nums[i]);
result[1]=i;
break;
}
targetMap.put(target-nums[i],i);
}
return result;
}
}
#2 Add Two Numbers
简单的链表加法
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode dummy=new ListNode(0);
ListNode p=dummy,p1=l1,p2=l2;
int carry=0;
for(;p1!=null||p2!=null||carry!=0;p1=(p1!=null?p1.next:null),p2=(p2!=null?p2.next:null),p=p.next){
int val=(p1!=null?p1.val:0)+(p2!=null?p2.val:0)+carry;
carry=val/10;
ListNode node=new ListNode(val%10);
p.next=node;
}
return dummy.next;
}
}




近期评论