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

面試經(jīng)典 150 題 - 多數(shù)元素

這篇具有很好參考價值的文章主要介紹了面試經(jīng)典 150 題 - 多數(shù)元素。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

多數(shù)元素

給定一個大小為 n 的數(shù)組 nums ,返回其中的多數(shù)元素。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù) 大于 ? n/2 ? 的元素。

你可以假設(shè)數(shù)組是非空的,并且給定的數(shù)組總是存在多數(shù)元素。

示例 1:

輸入:nums = [3,2,3]
輸出:3

示例 2:

輸入:nums = [2,2,1,1,1,2,2]
輸出:2

進(jìn)階:嘗試設(shè)計時間復(fù)雜度為 O(n)、空間復(fù)雜度為 O(1) 的算法解決此問題。

方法一:哈希表

class Solution {
    public int majorityElement(int[] nums) {
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int num : nums) {
            if (map.containsKey(num)) {
                map.put(num, map.get(num) + 1);
            } else {
                map.put(num, 1);
            }
        }

        int max = 0;
        int res = 0;
        for (Map.Entry<Integer, Integer> integerIntegerEntry : map.entrySet()) {
            if (integerIntegerEntry.getValue() > max) {
                max = integerIntegerEntry.getValue();
                res = integerIntegerEntry.getKey();
            }
        }

        return res;
    }
}

方法二:排序

如果將數(shù)組 nums 中的所有元素按照單調(diào)遞增或單調(diào)遞減的順序排序,那么下標(biāo)為 n/2 的元素(下標(biāo)從 0 開始)一定是眾數(shù)。

面試經(jīng)典 150 題 - 多數(shù)元素,LeetCode,面試,算法,leetcode

class Solution {
    public int majorityElement(int[] nums) {
        Arrays.sort(nums);
        return nums[nums.length / 2];
    }
}

方法三:隨機(jī)化

這個思路很獨特,感覺看臉。

因為超過 n/2 的數(shù)組下標(biāo)被眾數(shù)占據(jù)了,這樣我們隨機(jī)挑選一個下標(biāo)對應(yīng)的元素并驗證,有很大的概率能找到眾數(shù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-818600.html

class Solution {
    private int randRange(Random rand, int min, int max) {
        return rand.nextInt(max - min) + min;
    }

    private int countOccurences(int[] nums, int num) {
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == num) {
                count++;
            }
        }
        return count;
    }

    public int majorityElement(int[] nums) {
        Random rand = new Random();

        int majorityCount = nums.length / 2;

        while (true) {
            int candidate = nums[randRange(rand, 0, nums.length)];
            if (countOccurences(nums, candidate) > majorityCount) {
                return candidate;
            }
        }
    }
}

到了這里,關(guān)于面試經(jīng)典 150 題 - 多數(shù)元素的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • LeetCode面試經(jīng)典150題(day 1)

    LeetCode面試經(jīng)典150題(day 1)

    LeetCode是一個免費刷題的一個網(wǎng)站,想要通過筆試的小伙伴可以每天堅持刷兩道算法題。 接下來,每天我將更新LeetCode面試經(jīng)典150題的其中兩道算法題,一邊鞏固自己,一遍希望能幫助到有需要的小伙伴。 88.合并兩個有序數(shù)組 給你兩個按? 非遞減順序 ?排列的整數(shù)數(shù)組? nu

    2024年02月11日
    瀏覽(21)
  • LeetCode150道面試經(jīng)典題-- 加一(簡單)

    LeetCode150道面試經(jīng)典題-- 加一(簡單)

    給你一個非負(fù)整數(shù) x ,計算并返回? x ?的 算術(shù)平方根 。 由于返回類型是整數(shù),結(jié)果只保留 整數(shù)部分 ,小數(shù)部分將被 舍去 。 注意: 不允許使用任何內(nèi)置指數(shù)函數(shù)和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1: 輸入:x=4 輸出:2 ? 示例 2: 輸入: x = 8 輸出: 2 解釋: 8 的

    2024年02月12日
    瀏覽(21)
  • 【LeetCode-面試經(jīng)典150題-day23】

    【LeetCode-面試經(jīng)典150題-day23】

    目錄 108. 將有序數(shù)組轉(zhuǎn)換為二叉搜索樹 ?148.排序鏈表 ?427.建立四叉樹 ?23.合并K個升序鏈表 ? 108. 將有序數(shù)組轉(zhuǎn)換為二叉搜索樹 題意: 給你一個整數(shù)數(shù)組? nums ?,其中元素已經(jīng)按? 升序 ?排列,請你將其轉(zhuǎn)換為一棵? 高度平衡 ?二叉搜索樹。 高度平衡? 二叉樹是一棵滿足「

    2024年02月09日
    瀏覽(17)
  • 【LeetCode-經(jīng)典面試150題-day11】

    目錄 128.最長連續(xù)序列 ?228.匯總區(qū)間 ?56.合并區(qū)間 ?57.插入?yún)^(qū)間 ?452.用最少數(shù)量的箭引爆氣球 ? 128.最長連續(xù)序列 題意: 給定一個未排序的整數(shù)數(shù)組? nums ?,找出數(shù)字連續(xù)的最長序列(不要求序列元素在原數(shù)組中連續(xù))的長度。 請你設(shè)計并實現(xiàn)時間復(fù)雜度為? O(n) ? 的算法

    2024年02月12日
    瀏覽(23)
  • LeetCode150道面試經(jīng)典題-- 快樂數(shù)(簡單)

    LeetCode150道面試經(jīng)典題-- 快樂數(shù)(簡單)

    編寫一個算法來判斷一個數(shù) n 是不是快樂數(shù)。 「快樂數(shù)」 ?定義為: 對于一個正整數(shù),每一次將該數(shù)替換為它每個位置上的數(shù)字的平方和。 然后重復(fù)這個過程直到這個數(shù)變?yōu)?1,也可能是 無限循環(huán) 但始終變不到 1。 如果這個過程 結(jié)果為 ?1,那么這個數(shù)就是快樂數(shù)。 如果

    2024年02月12日
    瀏覽(24)
  • Leetcode面試經(jīng)典150題刷題記錄 —— 矩陣篇

    Leetcode面試經(jīng)典150題刷題記錄 —— 矩陣篇

    Leetcod面試經(jīng)典150題刷題記錄-系列 Leetcod面試經(jīng)典150題刷題記錄——數(shù)組 / 字符串篇 Leetcod面試經(jīng)典150題刷題記錄 —— 雙指針篇 本篇 Leetcod面試經(jīng)典150題刷題記錄 —— 矩陣篇 Leetcod面試經(jīng)典150題刷題記錄 —— 滑動窗口篇 Leetcod面試經(jīng)典150題刷題記錄 —— 哈希表篇 Leetcod面試

    2024年01月16日
    瀏覽(30)
  • Leetcode面試經(jīng)典150題刷題記錄 —— 數(shù)學(xué)篇

    Leetcode面試經(jīng)典150題刷題記錄-系列 Leetcod面試經(jīng)典150題刷題記錄——數(shù)組 / 字符串篇 Leetcod面試經(jīng)典150題刷題記錄 —— 雙指針篇 Leetcod面試經(jīng)典150題刷題記錄 —— 矩陣篇 Leetcod面試經(jīng)典150題刷題記錄 —— 滑動窗口篇 Leetcod面試經(jīng)典150題刷題記錄 —— 哈希表篇 Leetcod面試經(jīng)典

    2024年01月21日
    瀏覽(28)
  • 【leetcode面試經(jīng)典150題】29.三數(shù)之和(C++)

    【leetcode面試經(jīng)典150題】專欄系列將為準(zhǔn)備暑期實習(xí)生以及秋招的同學(xué)們提高在面試時的經(jīng)典面試算法題的思路和想法。本專欄將以一題多解和精簡算法思路為主,題解使用C++語言。(若有使用其他語言的同學(xué)也可了解題解思路,本質(zhì)上語法內(nèi)容一致) 給你一個整數(shù)數(shù)組?

    2024年04月13日
    瀏覽(23)
  • leetcode每日一題——189.輪轉(zhuǎn)數(shù)組(面試經(jīng)典150題)

    189. 輪轉(zhuǎn)數(shù)組 - 力扣(LeetCode) 給定一個整數(shù)數(shù)組? nums ,將數(shù)組中的元素 向右輪轉(zhuǎn)? k ? 個位置 ,其中? k ? 是非負(fù)數(shù)。 示例1: 示例2: 1 = nums.length = 105 -231?= nums[i] = 231?- 1 0 = k = 105 ? ? ? ?對題目進(jìn)行分析可知,我們需要根據(jù)輪轉(zhuǎn)量k,將數(shù)組后面的k個元素按照原來的順

    2024年02月12日
    瀏覽(32)
  • LeetCode150道面試經(jīng)典題-合并兩個有序數(shù)組(簡單)

    LeetCode150道面試經(jīng)典題-合并兩個有序數(shù)組(簡單)

    題目: 給你兩個按 非遞減順序 排列的整數(shù)數(shù)組? nums1 和 nums2 ,另有兩個整數(shù) m 和 n ,分別表示 nums1 和 nums2 中的元素數(shù)目。 請你 合并 nums2 到 nums1 中,使合并后的數(shù)組同樣按 非遞減順序 排列。 注意: 最終,合并后數(shù)組不應(yīng)由函數(shù)返回,而是存儲在數(shù)組 nums1 中。為了應(yīng)對

    2024年02月14日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包