首页 > 编程语言 >【算法】喜欢算法的朋友,看下乘积最大数组如何写?

【算法】喜欢算法的朋友,看下乘积最大数组如何写?

时间:2022-10-24 18:34:01浏览次数:38  
标签:乘积 nums int 示例 算法 numbers 数组

image.png

算法题目描述

1.数组排序,类型:图算法,简单。 2.下一个排列,类型:数组,双指针,中等难度。 3.乘积最大数组,类型,数组,中等难度。

第一道数组排序算法题目详细描述

编写一个JavaApplication程序,将随机生成的无序数组使用冒泡排序,将这个混乱的数组变成一个从小到大排列的有序的数组并输出。

java 解题代码参考如下


class demo_sort {
    public static void main(String[] args) {
        int[] numbers = new int[] { 1, 5, 8, 2, 3, 9, 4 };
        for (int i = 0; i < numbers.length - 1; i++) {
            for (int j = 0; j < numbers.length - 1 - i; j++) {
                if (numbers[j] > numbers[j + 1]) {
                    int temp = numbers[j];
                    numbers[j] = numbers[j + 1];
                    numbers[j + 1] = temp;
                }
            }
        }
        System.out.println("从小到大排序后的结果是:");
        for (int i = 0; i < numbers.length; i++)
            System.out.print(numbers[i] + " ");
    }
}

第二题下一个排列算法题目描述

实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须 原地修改也叫原地算法,只允许使用额外常数空间。 什么是原地算法呢? 在计算机科学中,一个原地算法(in-place algorithm)是一种使用小的,固定数量的额外之空间来转换资料的算法。当算法执行时,输入的资料通常会被要输出的部分覆盖掉。不是原地算法有时候称为非原地(not-in-place)或不得其所(out-of-place)

示例 1:

输入:nums = [1,2,3] 输出:[1,3,2]

示例 2:

输入:nums = [3,2,1] 输出:[1,2,3]

示例 3:

输入:nums = [1,1,5] 输出:[1,5,1]

示例 4:

输入:nums = [1] 输出:[1]

提示: 1 <= nums.length <= 100 0 <= nums[i] <= 100

java 解题代码参考如下

 int i = nums.length - 1;
            while (i > 0 && nums[i] <= nums[i - 1]) {
                i--;
            }
            if (i > 0) {
                int j = nums.length - 1;
                while (j >= 0 && nums[j] <= nums[i - 1]) {
                    j--;
                }
                swap(nums, i - 1, j);
            }
            reverse(nums, i);

第三题下一个排列算法题目描述

给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。

示例 1:

输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。

示例 2:

输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。

这道题留给大家来解答一下,评论区讨论哦

标签:乘积,nums,int,示例,算法,numbers,数组
From: https://blog.51cto.com/u_15312559/5790816

相关文章

  • 支持向量机算法之鸢尾花特征分类【机器学习】
    一.前言1.1本文原理支持向量机(SVM)是一种二元分类模型。它的基本模型是在特征空间中定义最大区间的线性分类器,这使它不同于感知器;支持向量机还包括核技术,这使得它本质上是......
  • shell脚本之数组
    一、数组的概念数组中可以存放多个值。BashShell只支持一维数组(不支持多维数组)。与大部分编程语言类似,数组元素的下标由0开始。Shell数组用括号来表示,元素用"空格......
  • 实验一:决策树算法实验
    博客班级https://edu.cnblogs.com/campus/czu/classof2020BigDataClass3-MachineLearning作业要求https://edu.cnblogs.com/campus/czu/classof2020BigDataClass......
  • 数组之reduce方法详解
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title>数组之reduce方法</title></head><body><script>//reduce()方法不会改变原始数组......
  • c语言数组(c语言数组求平均值)
    C语言数组有哪些特点呢?一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型C语言中一维数组中的数组大小可以省略吗?C语言中一维数组中的数组大小是......
  • #yyds干货盘点# 动态规划专题:乘积为正数的最长连续子数组
    1.简述:描述给定一个长度为n的整数数组,请你找出其中最长的乘积为正数的子数组长度。子数组的定义是原数组中一定长度的连续数字组成的数组。数据范围:  ,数组中的元素满......
  • #yyds干货盘点# 动态规划专题:环形数组的连续子数组最大和
    1.简述:描述给定一个长度为  的环形整数数组,请你求出该数组的 非空 连续子数组 的最大可能和。环形数组 意味着数组的末端将会与开头相连呈环状。例如,对于数组 而言,......
  • EM算法
    #1,求观测序列的概率#2,已知状态序列求观测序列#3,已知观测序列求模型参数#设状态值概率#pA=0.6#pB=0.5classEM():def__init__(self):self.t=0.6......
  • DFA算法C#实现
    ///<summary>///过滤词DFA算法实现///</summary>publicclassForbiddentWordLibrary{///<summary>///用分行过滤词文件来初......
  • 常用限流算法总结
    一、限流是什么?限流,也称流量控制。是指系统在面临高并发,或者大流量请求的情况下,限制新的请求对系统的访问,从而保证系统的稳定性。限流会导致部分用户请求处理不及时或者被......