mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
Update 0001.两数之和.md
增加java语言版本的双指针法
This commit is contained in:
@ -133,6 +133,7 @@ public:
|
|||||||
### Java:
|
### Java:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
|
//使用哈希表
|
||||||
public int[] twoSum(int[] nums, int target) {
|
public int[] twoSum(int[] nums, int target) {
|
||||||
int[] res = new int[2];
|
int[] res = new int[2];
|
||||||
if(nums == null || nums.length == 0){
|
if(nums == null || nums.length == 0){
|
||||||
@ -151,6 +152,43 @@ public int[] twoSum(int[] nums, int target) {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
```java
|
||||||
|
//使用双指针
|
||||||
|
public int[] twoSum(int[] nums, int target) {
|
||||||
|
int m=0,n=0,k,board=0;
|
||||||
|
int[] res=new int[2];
|
||||||
|
int[] tmp1=new int[nums.length];
|
||||||
|
//备份原本下标的nums数组
|
||||||
|
System.arraycopy(nums,0,tmp1,0,nums.length);
|
||||||
|
//将nums排序
|
||||||
|
Arrays.sort(nums);
|
||||||
|
//双指针
|
||||||
|
for(int i=0,j=nums.length-1;i<j;){
|
||||||
|
if(nums[i]+nums[j]<target)
|
||||||
|
i++;
|
||||||
|
else if(nums[i]+nums[j]>target)
|
||||||
|
j--;
|
||||||
|
else if(nums[i]+nums[j]==target){
|
||||||
|
m=i;
|
||||||
|
n=j;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//找到nums[m]在tmp1数组中的下标
|
||||||
|
for(k=0;k<nums.length;k++){
|
||||||
|
if(tmp1[k]==nums[m]){
|
||||||
|
res[0]=k;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//找到nums[n]在tmp1数组中的下标
|
||||||
|
for(int i=0;i<nums.length;i++){
|
||||||
|
if(tmp1[i]==nums[n]&&i!=k)
|
||||||
|
res[1]=i;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Python:
|
### Python:
|
||||||
(版本一) 使用字典
|
(版本一) 使用字典
|
||||||
|
Reference in New Issue
Block a user