码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 算法刷题日志 hot100 数组分类


    文章目录

      • [169. 多数元素](https://leetcode.cn/problems/majority-element/)
      • 旋转图像
      • 215. 数组中的第K个最大元素](https://leetcode.cn/problems/kth-largest-element-in-an-array/description/)
      • 238. 除自身以外数组的乘积](https://leetcode.cn/problems/product-of-array-except-self/)

    169. 多数元素

    在这里插入图片描述

    运用了摩尔投票的思想,就是cnt就是票数,当票数为0的时候可以缩小区间,且此时不影响众数的取值

    class Solution {
        public int majorityElement(int[] nums) {
                int ans = nums[0],cnt = 1;
                for(int i=1;i<nums.length;i++){
                    if(ans==nums[i]){
                        cnt++;
                    }else if(--cnt == 0){
                        ans = nums[i];
                        cnt=1;
                    }
                }
                return ans;
        }
    }
    

    旋转图像

    在这里插入图片描述

    记住i 是每一行 j是每一列 然后此解法是原地旋转90°

    class Solution {
        public void rotate(int[][] matrix) {
            int n = matrix.length;
            for(int i=0;i<n/2;i++){
                for(int j=0;j<(n+1)/2;j++){
                    int tmp = matrix[i][j];
                    matrix[i][j]=matrix[n-1-j][i];
                    matrix[n-1-j][i]=matrix[n-1-i][n-1-j];
                    matrix[n-1-i][n-1-j]=matrix[j][n-1-i];
                    matrix[j][n-1-i]=tmp;
                }
            }
        }
    }
    

    [

    215. 数组中的第K个最大元素](https://leetcode.cn/problems/kth-largest-element-in-an-array/description/)

    在这里插入图片描述

    将数组排序,排序之后,随机整一个随机数在该数组的范围里面,

    class Solution {
        public int findKthLargest(int[] nums, int k) {
            List<Integer> list = new ArrayList<>();
            for(int num : nums){
                list.add(num);
            }
            return quickSelect(list,k);
        }
        public int quickSelect(List<Integer>list,int k ){
            Random rand = new Random();
            int ans =  list.get(rand.nextInt(list.size()));
            List<Integer> small = new ArrayList<Integer>();
            List<Integer> big = new ArrayList<>();
            List<Integer> equal = new ArrayList<>();
            for(int num:list){
                if(num<ans ){
                    small.add(num);
                }else if(num >ans ){
                    big.add(num);
                }else{
                   equal.add(num); 
                }
            }
            if(k<=big.size()){
                    return    quickSelect(big,k);
            }
            if(big.size()+equal.size()<k){
                return quickSelect(small,k-(equal.size()+big.size()));
            }
            return ans;
    
        }
    }
    

    [

    238. 除自身以外数组的乘积](https://leetcode.cn/problems/product-of-array-except-self/)

    在这里插入图片描述

    1 2 3 4
    1 1 3 4
    1 2 1 4
    1 2 3 1 比如数组为 1234,则答案则像左边的矩阵一样,然后中间线就是1 然后就分为左下角,和右上角,

    class Solution {
        public int[] productExceptSelf(int[] nums) {
                int n = nums.length;
                 int []  ans = new int [n];
                 ans[0]=1;
                 int tmp = 1;
                 for(int i=1;i<n;i++){
                    ans[i]=ans[i-1]*nums[i-1];
                 }
                 for(int i=n-2;i>=0;i--){
                    tmp *= nums[i+1];
                    ans[i] *= tmp;
                 }
                 return ans;
        }
    }
    
  • 相关阅读:
    Python编程逐级进阶2
    深入浅出ThreadPoolExecutor(一)
    【Git】idea提交项目到Gitee
    2021 中国系统java面试笔试题(含面试题解析)
    解密Prompt系列29. LLM Agent之真实世界海量API解决方案:ToolLLM & AnyTool
    虹科分享 | 谷歌Vertex AI平台使用Redis搭建大语言模型
    《scikit-learn机器学习实战》简介
    【语音识别入门】Python音频处理示例(含完整代码)
    1422. 分割字符串的最大得分
    nexus 简单运维
  • 原文地址:https://blog.csdn.net/crisp0530/article/details/139997049
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号