基础算法题

简介: 基础算法编程题

1.给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

算法思路:如果数组中数字都为正,直接排序输出最大的三个值的乘积;如果数组中数字有两个或者两个以上负数,则输出最小的两个负数和最大的正数的乘积。

排序方法:Arrays.sort(数组名);

具体代码如下
————————————————

import java.util.Arrays;
import java.util.Scanner;

public class T2 {
   
    public static void main(String[] args) {
   
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入数组长度");
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++) {
   
            System.out.println("请输入第"+(i+1)+"个数的值");
            int a=sc.nextInt();
            nums[i]=a;
        }

        jiexi(nums);
    }
    private static int jiexi(int[] nums) {
   
        Arrays.sort(nums);
        int a=nums.length;
        int max = Math.max(nums[0]*nums[1]*nums[a-1],nums[a-1]*nums[a-2]*nums[a-3]);
        System.out.println(max);
        return 0;
    }
}
AI 代码解读

示例:

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

输出:6

2.约瑟夫环

示例题目:n个人(0,1,2,3,4...n-1),围成一圈,从编号为k的人开始报数,报数报到m的人出队(报数是1,2,...m这样报的)。下次从出队的人之后开始重新报数,循环往复,当队伍中只剩最后一个人的时候,那个人就是大王。现在,给定n,k,m,
请你求出大王的编号。

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
思路:键盘输入m,n,k,令剩余的人数最开始等于总人数,令数组中的值为0,当报数的人的数组值为1时,淘汰改人。然后j归零,重新开始循环。
————————————————


import java.util.Scanner;
public class T3 {
   

    public static void main(String[] args) {
   
        // TODO Auto-generated method stub
        Scanner sc=new Scanner(System.in);

        System.out.println("请输入总人数");
        int n=sc.nextInt();

        System.out.println("请输入从编号为"+"的人开始报数");
        int k=sc.nextInt();

        System.out.println("请输入出队的人的序号");
        int m=sc.nextInt();


        int []arr=new int[n];
        int x=n;//剩余的人数
        int j=0;//第一个开始报数的人
        while(x>1) {
   
            if(k==n)
                k=0;//限制范围
            if(arr[k]==0) {
   
                j++;
                if(j==m) {
   //当到达m个人时,令该位置数组的值等于1
                    arr[k]=1;
                    x--;
                    j=0;
                }
            }
            k++;
        }
        for(int a=0;a<n;a++) {
   
            if(arr[a]==0) {
   
                System.out.println(a);
                break;
            }

        }
    }

}
AI 代码解读

示例:

输入:5,1,2

输出:3

目录
打赏
0
3
3
1
35
分享
相关文章
【C/C++ 基础算法】 C/C++ 位图算法的使用
【C/C++ 基础算法】 C/C++ 位图算法的使用
158 0
【基础算法】开平方算法 & C++实现
在数学中,因为很多数的开平方都是无理数,所以我们需要借助数值计算的方式来进行近似值的求解。
376 0
【基础算法】开平方算法 & C++实现
【模式识别】探秘分类奥秘:最近邻算法解密与实战
【模式识别】探秘分类奥秘:最近邻算法解密与实战
82 0
基础算法-高精度乘法
高精度算法 为什么要使用高精度算法 C++ 每一个变量都有自己的类型,每个类型都有自己的存储长度范围
基础算法练习200题11、鸡兔同笼
基础算法练习200题11、鸡兔同笼
171 0
基础算法练习200题11、鸡兔同笼
基础算法练习200题07、编框
基础算法练习200题07、编框
102 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等