国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LeetCode題:581. 最短無(wú)序連續(xù)子數(shù)組,242. 有效的字母異位詞,202. 快樂(lè)數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了LeetCode題:581. 最短無(wú)序連續(xù)子數(shù)組,242. 有效的字母異位詞,202. 快樂(lè)數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

581. 最短無(wú)序連續(xù)子數(shù)組

題目要求:

581. 最短無(wú)序連續(xù)子數(shù)組

給你一個(gè)整數(shù)數(shù)組?nums?,你需要找出一個(gè)?連續(xù)子數(shù)組?,如果對(duì)這個(gè)子數(shù)組進(jìn)行升序排序,那么整個(gè)數(shù)組都會(huì)變?yōu)樯蚺判颉?/p>

請(qǐng)你找出符合題意的?最短?子數(shù)組,并輸出它的長(zhǎng)度。

示例 1:

輸入:nums = [2,6,4,8,10,9,15]
輸出:5
解釋?zhuān)?/strong>你只需要對(duì) [6, 4, 8, 10, 9] 進(jìn)行升序排序,那么整個(gè)表都會(huì)變?yōu)樯蚺判颉?

示例 2:

輸入:nums = [1,2,3,4]
輸出:0

示例 3:

輸入:nums = [1]
輸出:0

提示:

  • 1 <= nums.length <= 104
  • -105 <= nums[i] <= 105

解題思路:

我們定義一個(gè)數(shù)組num,拷貝原數(shù)組,然后對(duì)num進(jìn)行升序排序,再和原數(shù)組作比較,定義left為左邊第一個(gè)和原數(shù)組不相等的下標(biāo),定義right為右邊第一個(gè)和原數(shù)組不相等的下標(biāo),這樣我們就能找到最短子數(shù)組了,返回right - left + 1。

代碼:

class Solution {
    public int findUnsortedSubarray(int[] nums) {
        int len = nums.length;
        if(len == 1) {
            return 0;
        }
        int[] num = Arrays.copyOf(nums, len);
        Arrays.sort(num);
        //左邊界
        int left = 0;
        //右邊界
        int right = len - 1;
        //找出左邊界第一個(gè)不同的下標(biāo)
        for(int i = 0; i < len; i++) {
            if(num[i] == nums[i]) {
                left++;
            } else {
                break;
            }
        }
        //遍歷完了,left == len,即這個(gè)數(shù)組是有序的,則返回0
        if(left == len) return 0;
        //找右邊界第一個(gè)不相等的下標(biāo)
        for(int i = len - 1; i >= 0; i--) {
            if(num[i] == nums[i]) {
                right--;
            } else {
                break;
            }
        }
        return right - left + 1;
    }
}

242. 有效的字母異位詞

題目要求:

242. 有效的字母異位詞

給定兩個(gè)字符串?s?和?t?,編寫(xiě)一個(gè)函數(shù)來(lái)判斷?t?是否是?s?的字母異位詞。

注意:若?s?和?t?中每個(gè)字符出現(xiàn)的次數(shù)都相同,則稱(chēng)?s?和?t?互為字母異位詞。

示例?1:

輸入: s = "anagram", t = "nagaram"
輸出: true

示例 2:

輸入: s = "rat", t = "car"
輸出: false

提示:

  • 1 <= s.length, t.length <= 5 * 104
  • s?和?t?僅包含小寫(xiě)字母

解題思路:

定義兩個(gè)數(shù)組,這兩數(shù)組,每一個(gè)下標(biāo)都是存放26字母的其中唯一的一個(gè)下標(biāo),分別存題目中兩字符的字母?jìng)€(gè)數(shù),當(dāng)遍歷完 t 和 s 字符串,就比較這兩數(shù)組的每一個(gè)下標(biāo)都是否相等,相等就符合題目要求,不相等就不符合。

代碼:

class Solution {
    public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) {
            return false;
        }
        
        int[] numS = new int[26];
        int[] numT = new int[26];

        for(int i = 0; i < s.length(); i++) {
            numS[s.charAt(i) - 'a']++;
        }

        for(int i = 0; i < t.length(); i++) {
            numT[t.charAt(i) - 'a']++;
        }

        for(int i = 0; i < 26; i++) {
            if(numS[i] == numT[i]) {
                continue;
            } else {
                return false;
            }
        }
        return true;
    }
}

202. 快樂(lè)數(shù)

題目要求:

202. 快樂(lè)數(shù)

編寫(xiě)一個(gè)算法來(lái)判斷一個(gè)數(shù)?n?是不是快樂(lè)數(shù)。

「快樂(lè)數(shù)」?定義為:

  • 對(duì)于一個(gè)正整數(shù),每一次將該數(shù)替換為它每個(gè)位置上的數(shù)字的平方和。
  • 然后重復(fù)這個(gè)過(guò)程直到這個(gè)數(shù)變?yōu)?1,也可能是?無(wú)限循環(huán)?但始終變不到 1。
  • 如果這個(gè)過(guò)程?結(jié)果為?1,那么這個(gè)數(shù)就是快樂(lè)數(shù)。

如果?n?是?快樂(lè)數(shù)?就返回?true?;不是,則返回?false?。

示例 1:

輸入:n = 19
輸出:true
解釋?zhuān)?12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

示例 2:

輸入:n = 2
輸出:false

提示:

  • 1 <= n <= 231 - 1

解題思路:

題目已經(jīng)告訴我們給定的n,它要么循環(huán)計(jì)算后的結(jié)果會(huì)是1,是1就返回true,要么計(jì)算的結(jié)果是無(wú)限循環(huán)的,那么肯定會(huì)計(jì)算過(guò)程中肯定會(huì)出現(xiàn)相同的結(jié)果,那么我們就用hash表,存放這些計(jì)算結(jié)果,如果計(jì)算的結(jié)果是1,就返回true,要是有重復(fù)出現(xiàn)的數(shù)字,就返回false。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-753081.html

代碼:

class Solution {
    public boolean isHappy(int n) {
        Set<Integer> set = new HashSet<>();
        int result = 0;
        int flg;
        do {
            while(n > 0) {
                int tmp = n % 10;
                result += tmp * tmp;
                n /= 10;
            }
            if(!set.contains(result)) {
                set.add(result);
            } else {
                return false;
            }
            n = result;
            flg = result;
            result = 0;
        } while (flg != 1);
        return true;
    }
}

到了這里,關(guān)于LeetCode題:581. 最短無(wú)序連續(xù)子數(shù)組,242. 有效的字母異位詞,202. 快樂(lè)數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包