LeetCode TwoSum + 回文數(shù)

image.png

TwoSum這題就直接把數(shù)字和位置放進(jìn)Map里,然后用TARGET減當(dāng)前的數(shù),用結(jié)果去Map里找就行。不算是好的解法。

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] result = new int[2];
        Map<Integer, Integer> map = new HashMap<>();
        for(int i = 0; i< nums.length; i++) {
            if (map.containsKey(target - nums[i])) {
                result[0] = map.get(target - nums[i]);
                result[1] = i;
            }
            map.put(nums[i], i);
        }
        return result;
    }
}
image.png

數(shù)字回文這道題,之前是做過類似的,拿鏈表測字符串回文的,這次要做的是不依賴成字符串和鏈表來檢測數(shù)字的回文。也比較簡單。

class Solution {
    public static boolean isPalindrome(int x) {
        if (x < 0) {
            return false;
        }
        if (x <10) {
            return true;
        }
        int leftPointer = 0;
        int rightPointer = 0;
        int remainder = x;
        while (remainder >= 10) {
            remainder = remainder / 10;
            rightPointer++;
        }
        while (leftPointer < rightPointer) {
            int leftDigit = getLeftDigit(x, rightPointer, leftPointer);
            int rightDigit = getRightDigit(x);
            if (leftDigit != rightDigit) {
                return false;
            }
            x = removeFirstAndLastDigit(x, rightPointer, leftPointer);
            leftPointer++;
            rightPointer--;
        }
        return true;
    }

    private static int removeFirstAndLastDigit(int x, int rightPointer, int leftPointer) {
        return x % (int)Math.pow(10, rightPointer - leftPointer) / 10;
    }

    private static int getLeftDigit(int x, int rightPointer, int leftPointer) {
        return x / (int)Math.pow(10, getCurrentLength(rightPointer, leftPointer));
    }

    private static int getRightDigit(int x) {
        return x % 10;
    }

    private static int getCurrentLength(int right, int left) {
        return right - left;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容