算法题练习

复制代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
   public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int sum = 0;
        int []digits={0,1,2,9};
        for (int i = 1; i <=n ; i++) {
            if (containsDigit(i,digits)){
                sum+=i;
            }
        }
        System.out.println(sum);
    }
    private static boolean containsDigit(int number,int[]digits){
        while(number>0){
           int digit=number%10;
            for (int i : digits) {
                if (digit==i){
                    return true;
                }
            }
number/=10;
        }
        return false;
    }
}
复制代码
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = scanner.nextInt();
        int[] arr = new int[T];
        for (int i = 0; i < T; i++) {
            int n = scanner.nextInt();
            arr[i] = n;
        }
        Arrays.sort(arr);
        //两个最小的负数,一个最大的正数  三个最大的正数
        if (T == 3) {
            System.out.println(arr[0] * arr[1] * arr[2]);
        } else {
            int[] arr1 = new int[1000];
            int[] arr2 = new int[1000];
            int count1 = 0;
            int count2 = 0;
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] < 0) {
                    count1++;
                    arr1[i] = arr[i];
                }
                if (arr[i] > 0) {
                    count2++;
                    arr2[i] = arr[i];
                }
            }
            if (count1 == 0&&count2==T) {
                System.out.println(arr2[999] * arr2[998] * arr2[997]);
                return;
            }else if (count2==0&&count1==T){
                System.out.println(arr1[999] * arr1[998] * arr1[997]);
            }
            if (count2==0&&count1<T) {
                System.out.println(0);
                return;
            }
            Arrays.sort(arr1);
            Arrays.sort(arr2);
            int sum1 = arr1[0] * arr1[1] * arr2[999];
            int sum2 = arr2[999] * arr2[998] * arr2[997];
            System.out.println(Math.max(sum1, sum2));
        }
    }
}
复制代码
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
       String start = scanner.nextLine();
        String end = scanner.nextLine();
        //String start="**********";
        //String end="o****o****";
       char[] starts =start.toCharArray();
        char[] ends =end.toCharArray();
        int startNum=0;
        int endNum=0;
        for (int i = 0; i < starts.length; i++) {
            if (starts[i] != ends[i]) {
                startNum = i;
               break;
            }
        }
        for (int i = starts.length-1; i >=0 ; i--) {
            if (starts[i]!=ends[i]&&i!=startNum){
                endNum=i;
                break;
            }
        }
        System.out.println(endNum-startNum);
    }
}

这是我自己写的代码。我觉得挺对的,但是不知道为啥不通过。后来知道了,圆圈并不是只会出现一对,我是按一对来写的

复制代码
import java.util.Scanner;

public class Main11 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char [] a=scanner.nextLine().toCharArray();
        char [] b=scanner.nextLine().toCharArray();
        int result=0;
        for (int i = 0; i < a.length; i++) {
            if (a[i]!=b[i]){
                a[i+1]=a[i+1]=='*'?'o':'*';
                result++;
            }
        }
        System.out.println(result);
    }
}
相关推荐
我命由我123456 分钟前
Android 开发中,关于 Gradle 的 distributionUrl 的一些问题
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
橙露7 分钟前
SpringBoot 全局异常处理:优雅封装统一返回格式
java·spring boot·后端
贾斯汀玛尔斯15 分钟前
每天学一个算法-快速排序(Quick Sort)
数据结构·算法
炽烈小老头17 分钟前
【每天学习一点算法 2026/04/16】逆波兰表达式求值
学习·算法
awei091618 分钟前
MinIO配置自定义crossdomain.xml跨域策略(Nginx反向代理实现)
xml·java·nginx
谁怕平生太急28 分钟前
面试题记录:在线数据迁移
java·数据库·spring
优家数科28 分钟前
水质监测不准?解密云端 TDS 数据建模纠偏算法
算法
朝阳58129 分钟前
rust 交叉编译指南
开发语言·后端·rust
木井巳34 分钟前
【递归算法】组合总和
java·算法·leetcode·决策树·深度优先·剪枝
coding者在努力44 分钟前
被n整除的n位数
c++·算法