最简单的方法就是遍历,难度o(n^2)
另外可以用HashMap,把i和nums[i]存进map里。复杂度O(n)。
class Solution { public int[] twoSum(int[] nums, int target) { int[] res= new int[2]; if(nums==null||nums.length==0){ return null; } Mapmap = new HashMap<>(); for(int i=0;i Add Two Numbers class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { if(l1==null){ return l2; } if(l2==null){ return l1; } ListNode head = new ListNode(0); ListNode node=new ListNode(0); int add=0; node=head; while(l1!=null||l2!=null){ if(l1!=null&&l2!=null){ ListNode node2=new ListNode((l1.val+l2.val+add)%10); add=(l1.val+l2.val+add)/10; node.next=node2; node=node2; l1=l1.next; l2=l2.next; } else if(l1!=null){ ListNode node2=new ListNode((l1.val+add)%10); node.next=node2; node=node2; add=(l1.val+add)/10; l1=l1.next; } else if(l2!=null){ ListNode node3=new ListNode((l2.val+add)%10); node.next=node3; node=node3; add=(l2.val+add)/10; l2=l2.next; } } if(add!=0){ ListNode node2=new ListNode(add); node.next=node2; } return head.next; } }我出错的地方是
ListNode node2=new ListNode((l1.val+l2.val+add)%10); node.next=node2; node=node2;不能直接对node.next赋值。因为node.next是null,没有分配空间。会出现java.lang.NullPointerException
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)