首页 > 其他分享 >面试经典 150 题 (五)

面试经典 150 题 (五)

时间:2024-01-27 10:22:24浏览次数:23  
标签:150 right nums int 面试 num numMap 经典 left

快排

class Solution {
    public int majorityElement(int[] nums) {
        QuickSort(nums, 0, nums.length - 1);
        return nums[nums.length / 2];
    }

    int partition(int[] nums, int left, int right) {
        int l = left;
        int r = right;
        int pivot = nums[l];
        while (l < r) {
            while (l < r && pivot <= nums[r])
                r--;
            nums[l] = nums[r];
            while (l < r && pivot >= nums[l])
                l++;
            nums[r] = nums[l];
        }
        nums[l] = pivot;
        return l;
    }

    void QuickSort(int[] nums, int left, int right) {
        if (left < right) {
            int pivotPos = partition(nums, left, right);
            QuickSort(nums, left, pivotPos - 1);
            QuickSort(nums, pivotPos + 1, right);
        }
    }
}

哈希表

class Solution {
    public int majorityElement(int[] nums) {
        Map<Integer, Integer> numsMap = nums2map(nums);
        Set<Map.Entry<Integer, Integer>> numSet = numsMap.entrySet();
        Map.Entry<Integer, Integer> majorityEnrty = null;
        for (Map.Entry<Integer, Integer> entry: numSet){
            if(majorityEnrty == null || majorityEnrty.getValue() < entry.getValue()){
                majorityEnrty = entry;
            }
        }
        return majorityEnrty.getKey();
    }
    public Map<Integer, Integer>  nums2map(int[] nums){
        Map<Integer, Integer> numMap = new HashMap<Integer, Integer>();
        for(int num : nums){
            if (!numMap.containsKey(num)){
                numMap.put(num, 1);
            }else{
                numMap.put(num, numMap.get(num) + 1);
            }
        }
        return numMap;
    }
}

标签:150,right,nums,int,面试,num,numMap,经典,left
From: https://www.cnblogs.com/poteitoutou/p/17990687

相关文章

  • Unity面试题:热更新篇(一)
    请简要介绍Unity热更新的原理和实现方式。答:Unity热更新的原理是通过将游戏的资源和代码分离,将代码部分放置在服务器端,游戏启动时通过网络下载更新的代码并动态加载,以达到实现热更新的目的。实现方式包括AssetBundle、ILRuntime等。对啦!这里有个游戏开发交流小组里面聚集了一帮热......
  • 每日一道Java面试题:Java是值传递还是引用传递?
    写在开头Java是值传递还是引用传递?这个问题几乎100%的出现在了各大主流Java面试题中,知识点很小,但很考验面试者对于Java运行的理解,今晚趁着生产投产的空子,过来小聊一下。实参与形参所谓的值传递or引用传递是指方法在调用的过程中实参传递的两种变现形式,那么好,想搞清楚这个问题的......
  • 面试经典 150题 (四)
    向前移动元素需要k的值,所以移动需要放在最后面。classSolution{publicintremoveDuplicates(int[]nums){if(nums.length<1)return0;intcurNum=nums[0];intk=0;intcount=0;inti;for(i=0;i......
  • 使用aigc进行运维SRE岗面试
    原文链接:百度SRE岗面试复盘SRE岗面试复盘-K8S篇SRE岗面试复盘-可观测性篇‍‍‍SRE岗面试复盘(外企篇)SRE岗面试复盘(某Top私募量化)经验方案微服务应用迁移到Kubernetes,流量如何接入切换?微服务架构迁移Kubernetes,主要做了哪些工作,中间有遇到什么难点?image-2024......
  • 深度解析Java8社招面试题:Lambda序列化到底行不行?
    大家好,我是小米,一个热爱技术分享的小伙伴。今天,我们来聊一个关于Java8的话题,一个颇具技术深度的问题:“社招面试题:Java8中的Lambda表达式可以序列化吗?”废话不多说,让我们一起揭开这个技术的神秘面纱!Lambda表达式的崛起在Java8之前,我们编写代码时常常要依赖匿名内部类,这使得代码显得......
  • 【解答】面试题:如何快速解决跨库join表关联?
    面试题:如何快速解决跨库join表关联?有一天产品经理提了一个需求,要关联查询A库的xxx表和B库的xxx表(跨库join),做实时分析(查询的表不固定,后期业务还会调整)。Java研发更改代码实现比较困难,大数据团队反馈可以,但不能保证实时性,会有30分钟左右的数据延迟。产品经理说我这个需求很急,30分......
  • 经典Prompt欣赏 - 金庸群俠傳
    这个GPTs可以在下面地址体验:https://chat.openai.com/g/g-puVi10p7j-jin-yong-qun-xia-chuan体验开始时,先输入你要扮演的角色然后就会让你每次都有一个选择:实现为了便于理解,我把原Prompt中的繁体改成了简体,最初的这段英文做了翻译。Youarea"GPT"–aversionof......
  • 经典Prompt欣赏 - 金庸群俠傳
    这个GPTs可以在下面地址体验:https://chat.openai.com/g/g-puVi10p7j-jin-yong-qun-xia-chuan体验开始时,先输入你要扮演的角色然后就会让你每次都有一个选择:实现为了便于理解,我把原Prompt中的繁体改成了简体,最初的这段英文做了翻译。Youarea"GPT"–aversionof......
  • MySQL数据库优化的八种方式(经典必看)
    MySQL数据库优化的八种方式(经典必看)引言:关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂偶尔发现了这篇文章,总结得很经典,文章流量也很大,所以拿到自己的总结文集中,积累优质文章,提升个人能力,希望对大家今后开发中也有帮助1、......
  • 每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!
    写在开头请聊一聊Java中方法的重写和重载?这个问题应该是各大厂面试时问的最多的话题之一了,它们几乎贯穿了我们日常的开发工作,在过往的博客中我们多多少少都提到过重载与重写,而今天我们就一起来详细的学习一下这二者的功能与区别!重载与重写的定义重写:类实现接口或者子类继承......