leetcode练习
283.移动零
public void moveZeroes(int[] nums) {
int a = 0;
for(int i=0;i<nums.length;i++){
if(nums[i]!=0){
nums[a]=nums[i];
a++;
}
}
for(int j=a;j<nums.length;j++){
nums[j]=0;
}
}
167.两数之和II
遇到这道题,第一反应是利用Hashmap的方法即两数之和,但这道题的数组已经是升序排好,所以利用双指针有更简单的方法。
public int[] twoSum(int[] numbers, int target) {
for (int i = 0, j = numbers.length - 1; i < j;) {
int sum = numbers[i] + numbers[j];
if (sum == target) return new int[] {i + 1, j + 1};
else if (sum > target) j--;
else i++;
}
return null;
}