首页 > 编程语言 >算法积累

算法积累

时间:2024-12-07 20:21:14浏览次数:9  
标签:积累 乘积 int 最大值 args length 算法 正数

计算最大数

      对数组进行排序,取最大的n个数和 (最大数*(绝对值乘积最大的数)),两者取最大值即为最大数。

/**
     * 題目:求一个整数数组中的三个数最大乘积
     * 思路:若全是正數,則数组按顺序排序后,最大三个数的乘积即为最大值
     *      若全是负数,同样最大三个数的乘积即为最大值
     *      若既有正数也有负数,则;两数的绝对值最大值*最大正数
     *                           两数的绝对值= (两最大正数的乘积 或者两最小负数的乘积)
     */
    public long getMax(int[] args) {
        Arrays.sort(args);
        int length = args.length;
        //全正数和全负数的最大值
        int maxNum = args[length-1] * args[length-2] * args[length-3];

        //既有正数也有负数
        // int maxNum2 = args[length-1] * (两数的绝对值最大值 = )
        int maxNum2 = args[length-1] * args[0] * args[1];
        int maxNum3 = args[length-1] * args[length-2] * args[length-3];
        return Math.max(maxNum, maxNum2);
    }

 

标签:积累,乘积,int,最大值,args,length,算法,正数
From: https://www.cnblogs.com/UUUz/p/18592623

相关文章

  • 【推荐算法】推荐系统中的特征工程
    前言:这篇文章是阅读石塔西《互联网大厂推荐算法实战》第二章推荐系统中的特征工程的学习笔记,在未来对于特征向量的学习笔记会在此基础上进行补充。编者认为特征工程已经过时的言论是错误的,该言论认为DNN模型可以自主的完成对数据特征的提取,但是在DeepCrossNetwork网络中,作者直......
  • 欧几里得算法 & 扩展欧几里得算法
    一、欧几里得算法欧几里得算法,也叫辗转相除,简称gcd,用于计算两个整数的最大公约数引理:\(\gcd(a,b)=\gcd(b,a\%b)\)证明:设\(r=a%b\),\(c=gcd(a,b)\)则\(a=xc\),\(b=yc\),其中\(x,y\)互质\(r=a\%b=a-pb=xc-pyc=(x-py)c\)......
  • 堆栈实验--KMP算法
     求next数组的思想:最长公共前后缀什么是字符串前后缀呢,比如一个字符串aba,a可以是前缀,ab也可以是,但aba不是(也有资料说是但在kmp我们不认为),同样的,a(最后的a)是后缀,ba也是。求next数组,以ababa为例,若字符数组以0开始,第一位我们默认为-1,即a b a b a-1求第二位,则......
  • 编写一个冒泡算法,对10个整数进行排序
    #include<iostream>//冒泡排序函数voidbubbleSort(intarr[],intn){for(inti=0;i<n-1;++i){for(intj=0;j<n-1-i;++j){if(arr[j]>arr[j+1]){//交换相邻元素inttemp......
  • 栈和队列的应用 ——球钟算法
    栈和队列的应用——球钟算法1.球钟背景球钟是一个利用球的移动来记录时间的简单装置它有三个可以容纳若干个球的指示器:分钟指示器,五分钟指示器,小时指示器若分钟指示器中有两个球,五分钟指示器有六个球,小时指示器有五个球,那就代表时间是5:322.工作原理每过一分钟球钟就......
  • [学习笔记 #8] Manacher 算法
    目录[学习笔记#8]Manacher算法[学习笔记#8]Manacher算法至今都不会exKMP/dk/dk/dk[]里的是我还不确定的。Manacher是对序列上每个点求它作为[回文中心]的最长回文子串长度/端点的算法,时间复杂度是\(O(|S|)\)。具体地,从左往右加入每个点,记录当前字符串的回......
  • 【C++算法】31.前缀和_连续数组
    文章目录题目链接:题目描述:解法C++算法代码:图解题目链接:525.连续数组题目描述:解法前缀和思想:如果把0变成-1,那么就是在区间内找一个最长的子数组,使得子数组中所有元素的和为0前面做过一个前缀和为k的子数组,这里就是转化为和为0。前缀和+哈希表哈希表里......
  • 【C++算法】32.前缀和_矩阵区域和
    文章目录题目链接:题目描述:解法C++算法代码:题目链接:1314.矩阵区域和题目描述:解法防止有人看不明白题目,先解释一下题目二维前缀和思想:使用前缀和矩阵ret=[x1,y1]~[x2,y2]=D=(A+B+C+D)-(A+B)-(A+C)+A=dp[x2,y2]-dp[x1-1,y2]-dp[x2,y1-1]+dp[x......
  • 基于机器学习算法的糖尿病风险预测可视化分析
    背景:根据世界卫生组织的数据,全球糖尿病发病率逐年上升。在中国,糖尿病的发病率也呈上升趋势,对人们的生活质量造成严重影响。机器学习算法在糖尿病风险预测方面具有巨大潜力。目的:通过机器学习算法分析糖尿病患者的特征,预测糖尿病风险,并进行可视化分析。内容:数据收集:收集......
  • 深入解析图神经网络:Graph Transformer的算法基础与工程实践
    GraphTransformer是一种将Transformer架构应用于图结构数据的特殊神经网络模型。该模型通过融合图神经网络(GNNs)的基本原理与Transformer的自注意力机制,实现了对图中节点间关系信息的处理与长程依赖关系的有效捕获。GraphTransformer的技术优势在处理图结构数据任务时,Graph......