每日一刷leetcode

1.兩數(shù)和問題

給定一個整數(shù)數(shù)組 nums 和一個整數(shù)目標值 target,請你在該數(shù)組中找出 和為目標值 的那 兩個 整數(shù),并返回它們的數(shù)組下標。

你可以假設每種輸入只會對應一個答案。但是,數(shù)組中同一個元素不能使用兩遍。

你可以按任意順序返回答案。

示例 1:

輸入:nums = [2,7,11,15], target = 9
輸出:[0,1]
解釋:因為 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
提示:
只會存在一個有效答案

解法1:暴力求解(一個嵌套for循環(huán)搞定)

class Solution {
    public int[] twoSum(int[] nums, int target) {
        for(int i=0;i<nums.length-1;i++){
            for(int j=i+1;j<nums.length;j++){
                if(nums[i]+nums[j]==target){
                    return new int[]{i,j};
                }
            }
        }
        return new int[0];
    }
}

暴力解法時間復雜度為O(N^2),空間復雜度為O(1)

解法2:利用hash表求解

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

解法2的時間復雜度為O(N),空間復雜度為O(N)

2.整數(shù)反轉問題

給你一個 32 位的有符號整數(shù) x ,返回 x 中每位上的數(shù)字反轉后的結果。
如果反轉后整數(shù)超過 32 位的有符號整數(shù)的范圍 [?231, 231 ? 1] ,就返回 0。
假設環(huán)境不允許存儲 64 位整數(shù)(有符號或無符號)。

示例 1:
輸入:x = 123
輸出:321

解題思路:

一種是先將int轉成String,然后反向遍歷一下形成一個新的String然后再轉為long,判斷是否越界,如果越界則返回0,沒有越界則直接轉成int。但是這種比第一題的暴力求解還low。
第二種解法也相對簡單,我們可以通過每次對10取模得到末尾的數(shù)字,然后又將得到的數(shù)字乘以10,即可得到最終的結果,當然也需要判斷是否超過范圍。
以下為官方解法:

class Solution {
    public int reverse(int x) {
        int rev=0;
        while(x!=0){
            int pop=x%10;
            x/=10;
            if(rev>Integer.MAX_VALUE/10||(rev==Integer.MAX_VALUE/10&&pop>7))return 0;
            if(rev<Integer.MIN_VALUE/10||(rev==Integer.MIN_VALUE/10&&pop<-8)) return 0;
            rev=rev*10+pop;
        }
        return rev;
    }
}

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/two-sum
著作權歸領扣網絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容