轉自leetcode
看了一下java的最優解,感嘆真的技不如人
簡單來説就是把當前complement的數字在原來array的位數,存進新array原數字為index的位置上面,然後每次都去找complement
int max= 2047;
int temp;
int[] test=new int[max+1];
for(int i=0;i<nums.length;i++){
temp=(target-nums[i])&max;// target為0時出現負數的情況
if(test[temp]!=0){
return new int[]{test[temp]-1, i};
}
test[nums[i]&max] =i+1;
}
throw new IllegalStateException("no solution");
時間是1ms