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

( 數(shù)組和矩陣) 697. 數(shù)組的度 ——【Leetcode每日一題】

這篇具有很好參考價(jià)值的文章主要介紹了( 數(shù)組和矩陣) 697. 數(shù)組的度 ——【Leetcode每日一題】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

?697. 數(shù)組的度

難度:簡(jiǎn)單

給定一個(gè)非空且只包含非負(fù)數(shù)的整數(shù)數(shù)組 nums,數(shù)組的 的定義是指數(shù)組里任一元素出現(xiàn)頻數(shù)的最大值。

你的任務(wù)是在 nums 中找到與 nums 擁有相同大小的度的最短連續(xù)子數(shù)組,返回其長(zhǎng)度。

示例 1:

輸入:nums = [1,2,2,3,1]
輸出:2
解釋:
輸入數(shù)組的度是 2 ,因?yàn)樵?1 和 2 的出現(xiàn)頻數(shù)最大,均為 2 。
連續(xù)子數(shù)組里面擁有相同度的有如下所示:
[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]
最短連續(xù)子數(shù)組 [2, 2] 的長(zhǎng)度為 2 ,所以返回 2 。

示例 2:

輸入:nums = [1,2,2,3,1,4,2]
輸出:6
解釋:
數(shù)組的度是 3 ,因?yàn)樵?2 重復(fù)出現(xiàn) 3 次。
所以 [2,2,3,1,4,2] 是最短子數(shù)組,因此返回 6 。

提示:

  • nums.length150,000 范圍內(nèi)。
  • nums[i] 是一個(gè)在 049,999 范圍內(nèi)的整數(shù)。

??思路:哈希表

使用哈希表,key保存的是整數(shù),value保存一個(gè)數(shù)組,里面右三個(gè)數(shù),分別為該整數(shù)出現(xiàn)的次數(shù)、第一次出現(xiàn)的位置,和最后一次出現(xiàn)的位置;

并設(shè)置變量maxmaxNum,記錄哪個(gè)整數(shù)出現(xiàn)的次數(shù)最大,及對(duì)應(yīng)的value置,在遍歷數(shù)組的時(shí)候不斷更新;

注意有可能數(shù)組中出現(xiàn)頻率最大數(shù)的整數(shù)不止一個(gè),這時(shí)我們要取較短的那個(gè)。

??代碼:(Java、C++)

Java

class Solution {
    public int findShortestSubArray(int[] nums) {
        int max = 0;
        int maxNum = 0;
        HashMap<Integer, int[]> map = new HashMap<>();
        for(int i = 0; i < nums.length; i++){
            if(!map.containsKey(nums[i])){
                int[] tem = {1, i, i};
                map.put(nums[i], tem);
            }else{
                map.get(nums[i])[0]++;
                map.get(nums[i])[2] = i;
            }
            if(map.get(nums[i])[0] > max){
                max = map.get(nums[i])[0];
                maxNum = nums[i];
            }else if(map.get(nums[i])[0] == max && map.get(nums[i])[2] - map.get(nums[i])[1] < map.get(maxNum)[2] - map.get(maxNum)[1]){
                maxNum = nums[i];
            }
        }
        return map.get(maxNum)[2] - map.get(maxNum)[1] + 1;
    }
}

C++

class Solution {
public:
    int findShortestSubArray(vector<int>& nums) {
        int max = 0;
        int maxNum = 0;
        unordered_map<int, vector<int>> map;
        for(int i = 0; i < nums.size(); i++){
            if(map.find(nums[i]) == map.end()){
                map[nums[i]] = {1, i, i};
            }else{
                map[nums[i]][0]++;
                map[nums[i]][2] = i;
            }
            if(map[nums[i]][0] > max){
                max = map[nums[i]][0];
                maxNum = nums[i];
            }else if(map[nums[i]][0] == max && map[nums[i]][2] - map[nums[i]][1] < map[maxNum][2] - map[maxNum][1]){
                maxNum = nums[i];
            }
        }
        return map[maxNum][2] - map[maxNum][1] + 1;
    }
};
?? 運(yùn)行結(jié)果:

( 數(shù)組和矩陣) 697. 數(shù)組的度 ——【Leetcode每日一題】

?? 復(fù)雜度分析:
  • 時(shí)間復(fù)雜度 O ( n ) O(n) O(n),其中 n 為數(shù)組的長(zhǎng)度。
  • 空間復(fù)雜度 O ( n ) O(n) O(n),最壞情況下,哈希表和原數(shù)組等大。

題目來(lái)源:力扣。

放棄一件事很容易,每天能堅(jiān)持一件事一定很酷,一起每日一題吧!
關(guān)注我 leetCode專欄,每日更新!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-433569.html

注: 如有不足,歡迎指正!

到了這里,關(guān)于( 數(shù)組和矩陣) 697. 數(shù)組的度 ——【Leetcode每日一題】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • (數(shù)組與矩陣) 劍指 Offer 03. 數(shù)組中重復(fù)的數(shù)字 ——【Leetcode每日一題】

    (數(shù)組與矩陣) 劍指 Offer 03. 數(shù)組中重復(fù)的數(shù)字 ——【Leetcode每日一題】

    難度:簡(jiǎn)單 找出數(shù)組中重復(fù)的數(shù)字。 在一個(gè)長(zhǎng)度為 n 的數(shù)組 nums 里的所有數(shù)字都在 0~n-1 的范圍內(nèi)。數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個(gè)數(shù)字重復(fù)了,也不知道每個(gè)數(shù)字重復(fù)了幾次。請(qǐng)找出數(shù)組中任意一個(gè)重復(fù)的數(shù)字。 示例 1: 輸入 : [2, 3, 1, 0, 2, 5, 3] 輸出 :2 或

    2024年02月16日
    瀏覽(20)
  • ( 數(shù)組和矩陣) 667. 優(yōu)美的排列 II ——【Leetcode每日一題】

    ( 數(shù)組和矩陣) 667. 優(yōu)美的排列 II ——【Leetcode每日一題】

    難度:中等 給你兩個(gè)整數(shù) n 和 k ,請(qǐng)你構(gòu)造一個(gè)答案列表 answer ,該列表應(yīng)當(dāng)包含從 1 到 n 的 n 個(gè)不同正整數(shù),并同時(shí)滿足下述條件: 假設(shè)該列表是 answer = [a1, a2, a3, ... , an] ,那么列表 [|a1 - a2|, |a2 - a3|, |a3 - a4|, ... , |an-1 - an|] 中應(yīng)該有且僅有 k 個(gè)不同整數(shù)。 返回列表 answer

    2024年02月06日
    瀏覽(19)
  • ( 數(shù)組和矩陣) 485. 最大連續(xù) 1 的個(gè)數(shù) ——【Leetcode每日一題】

    ( 數(shù)組和矩陣) 485. 最大連續(xù) 1 的個(gè)數(shù) ——【Leetcode每日一題】

    難度:簡(jiǎn)單 給定一個(gè)二進(jìn)制數(shù)組 nums , 計(jì)算其中最大連續(xù) 1 的個(gè)數(shù)。 示例 1: 輸入:nums = [1,1,0,1,1,1] 輸出:3 解釋:開(kāi)頭的兩位和最后的三位都是連續(xù) 1 ,所以最大連續(xù) 1 的個(gè)數(shù)是 3. 示例 2: 輸入:nums = [1,0,1,1,0,1] 輸出:2 提示: 1 = n u m s . l e n g t h = 1 0 5 1 = nums.length = 10^5

    2024年02月08日
    瀏覽(27)
  • ( 數(shù)組和矩陣) 378. 有序矩陣中第 K 小的元素 ——【Leetcode每日一題】

    ( 數(shù)組和矩陣) 378. 有序矩陣中第 K 小的元素 ——【Leetcode每日一題】

    難度:中等 給你一個(gè) n x n n x n n x n 矩陣 m a t r i x matrix ma t r i x ,其中每行和每列元素均按升序排序,找到矩陣中第 k 小的元素。 請(qǐng)注意,它是 排序后 的第 k 小元素,而不是第 k 個(gè) 不同 的元素。 你必須找到一個(gè)內(nèi)存復(fù)雜度優(yōu)于 O ( n 2 ) O(n^2) O ( n 2 ) 的解決方案。 示例 1:

    2024年02月14日
    瀏覽(26)
  • (數(shù)組) 941. 有效的山脈數(shù)組 ——【Leetcode每日一題】

    (數(shù)組) 941. 有效的山脈數(shù)組 ——【Leetcode每日一題】

    難度:簡(jiǎn)單 給定一個(gè)整數(shù)數(shù)組 arr ,如果它是有效的山脈數(shù)組就返回 true ,否則返回 false 。 讓我們回顧一下,如果 arr 滿足下述條件,那么它是一個(gè)山脈數(shù)組: arr.length = 3 在 0 i arr.length - 1 條件下,存在 i 使得: arr[0] arr[1] ... arr[i-1] arr[i] arr[i] arr[i+1] ... arr[arr.length - 1] 示例

    2024年02月09日
    瀏覽(36)
  • Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

    Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

    各位CSDN的uu們你們好呀,又到小雅蘭的愉快題解時(shí)候啦,今天,我們的題目?jī)?nèi)容是合并兩個(gè)有序數(shù)組,下面,讓我們進(jìn)入合并兩個(gè)有序數(shù)組的世界吧 示例 1: 輸入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 輸出:[1,2,2,3,5,6] 解釋:需要合并 [1,2,3] 和 [2,5,6] 。 合并結(jié)果是 [ 1,2

    2023年04月24日
    瀏覽(37)
  • LeetCode每日一題——1331.數(shù)組序號(hào)轉(zhuǎn)換

    LeetCode每日一題——1331.數(shù)組序號(hào)轉(zhuǎn)換

    題目傳送門 給你一個(gè)整數(shù)數(shù)組 arr ,請(qǐng)你將數(shù)組中的每個(gè)元素替換為它們排序后的序號(hào)。 序號(hào)代表了一個(gè)元素有多大。序號(hào)編號(hào)的規(guī)則如下: 序號(hào)從 1 開(kāi)始編號(hào)。 一個(gè)元素越大,那么序號(hào)越大。如果兩個(gè)元素相等,那么它們的序號(hào)相同。 每個(gè)數(shù)字的序號(hào)都應(yīng)該盡可能地小。

    2024年02月14日
    瀏覽(25)
  • 【LeetCode每日一題】——1331.數(shù)組序號(hào)轉(zhuǎn)換

    【LeetCode每日一題】——1331.數(shù)組序號(hào)轉(zhuǎn)換

    排序 簡(jiǎn)單 1331.數(shù)組序號(hào)轉(zhuǎn)換 給你一個(gè)整數(shù)數(shù)組 arr ,請(qǐng)你將數(shù)組中的每個(gè)元素替換為它們排序后的序號(hào)。 序號(hào)代表了一個(gè)元素有多大。序號(hào)編號(hào)的規(guī)則如下: 序號(hào)從 1 開(kāi)始編號(hào)。 一個(gè)元素越大,那么序號(hào)越大。如果兩個(gè)元素相等,那么它們的序號(hào)相同。 每個(gè)數(shù)字的序號(hào)都

    2024年02月12日
    瀏覽(16)
  • 【LeetCode每日一題】——566.重塑矩陣

    【LeetCode每日一題】——566.重塑矩陣

    矩陣 簡(jiǎn)單 566.重塑矩陣 在 MATLAB 中,有一個(gè)非常有用的函數(shù) reshape ,它可以將一個(gè) m x n 矩陣重塑為另一個(gè)大小不同(r x c)的新矩陣,但保留其原始數(shù)據(jù)。 給你一個(gè)由二維數(shù)組 mat 表示的 m x n 矩陣,以及兩個(gè)正整數(shù) r 和 c ,分別表示想要的重構(gòu)的矩陣的行數(shù)和列數(shù)。 重構(gòu)后

    2024年02月14日
    瀏覽(20)
  • ( 數(shù)組) 209. 長(zhǎng)度最小的子數(shù)組——【Leetcode每日一題】

    ( 數(shù)組) 209. 長(zhǎng)度最小的子數(shù)組——【Leetcode每日一題】

    難度:中等 給定一個(gè)含有 n 個(gè)正整數(shù)的數(shù)組和一個(gè)正整數(shù) target 。 找出該數(shù)組中滿足其和 ≥ target 的長(zhǎng)度最小的 連續(xù)子數(shù)組 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其長(zhǎng)度。如果不存在符合條件的子數(shù)組,返回 0 。 示例 1: 輸入:target = 7, nums = [2,3,1,2,4,3] 輸出:2 解釋:子數(shù)

    2024年02月06日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包