算法题练习

复制代码
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);
    }
}
相关推荐
じ☆ve 清风°1 小时前
JavaScript 原型与原型链:深入理解 __proto__ 和 prototype 的由来与关系
开发语言·javascript·原型模式
这儿有一堆花1 小时前
比特币:固若金汤的数字堡垒与它的四道防线
算法·区块链·哈希算法
BillKu1 小时前
Java + Spring Boot + Mybatis 实现批量插入
java·spring boot·mybatis
YuTaoShao1 小时前
Java八股文——集合「Map篇」
java
客卿1231 小时前
力扣100-移动0
算法·leetcode·职场和发展
有梦想的攻城狮3 小时前
maven中的maven-antrun-plugin插件详解
java·maven·插件·antrun
CM莫问4 小时前
<论文>(微软)WINA:用于加速大语言模型推理的权重感知神经元激活
人工智能·算法·语言模型·自然语言处理·大模型·推理加速
_r0bin_6 小时前
前端面试准备-7
开发语言·前端·javascript·fetch·跨域·class
zhang98800006 小时前
JavaScript 核心原理深度解析-不停留于表面的VUE等的使用!
开发语言·javascript·vue.js
计信金边罗6 小时前
是否存在路径(FIFOBB算法)
算法·蓝桥杯·图论