码农知识堂 - 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;
        }
    }
    
  • 相关阅读:
    《生命·觉者》蔡志忠:一个人,活出自己是最重要的
    OceanBase社区版单节点安装搭建(Docker)
    (十四)全解MySQL之各方位事无巨细的剖析存储过程与触发器!
    深入浅出Docker:Java开发者的快速上手指南
    Azure Data Factory(九)基础知识回顾
    02.k8s之docker容器
    小白必看!上位机控制单片机原理
    什么是大数据?要从这三个层面来理解
    深度学习基础-1
    全网最全的AItium Designer 16下载资源与安装步骤
  • 原文地址:https://blog.csdn.net/crisp0530/article/details/139997049
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号