Two sum 最佳解法

2019-08-20  本文已影响0人  dearjj
轉自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

上一篇 下一篇

猜你喜欢

热点阅读