class Solution {
public int[] twoSum(int[] nums, int target) {
// 双指针
// 先考虑数组内数字不相等的情况
int n=nums.length;
int left=0,right=n-1;
int[] ans=new int[2];
while(left<right){
if(nums[left]+nums[right]>target){
right--;
}else if(nums[left]+nums[right]<target){
left++;
}else{
ans[0]=nums[left];
ans[1]=nums[right];
break;
}
}
return ans;
}
}
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
// 一种是都提取出来,按照数组排序
// 另一种按照正常思路,分别取出并比较
ListNode ans=new ListNode(0);
ListNode node=ans;
while(l1!=null && l2!=null){
ListNode temp=new ListNode();
if(l1.val<=l2.val){
temp.val=l1.val;
node.next=temp;
l1=l1.next;
// System.out.println("l1:"+node.val);
}else{
temp.val=l2.val;
node.next=temp;
l2=l2.next;
// System.out.println("l2:"+node.val);
}
node=node.next;
}
node.next= l1==null ? l2 : l1;
return ans.next;
}
}
网友评论