算法题练习

复制代码
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);
    }
}
相关推荐
努力的搬砖人.6 分钟前
Kafka相关的面试题
java·后端·kafka
baiyu3310 分钟前
成为Python砖家(7): 使用miniforge管理Python版本
开发语言·python
Jay_See14 分钟前
LeetCode——344. 反转字符串
数据结构·算法·leetcode
(❁´◡`❁)Jimmy(❁´◡`❁)16 分钟前
1141. 【贪心算法】排队打水
算法·贪心算法
每次的天空19 分钟前
kotlin中的行为组件
android·开发语言·kotlin
捡田螺的小男孩31 分钟前
CompletableFuture使用的6个坑
java·后端
_半夏曲31 分钟前
为什么List、Set集合无法在遍历的时候修改内部元素
java·数据结构·list
算法与编程之美1 小时前
利用java实现数据分析
java·开发语言·python·数据挖掘·数据分析
lmryBC491 小时前
获取golang变量的类型
开发语言·后端·golang