头像

Acwer

南昌交通学院




离线:55分钟前


最近来访(295)
用户头像
2019211753
用户头像
acwing10
用户头像
一万小时定律
用户头像
胡图图
用户头像
心境
用户头像
xzxqwq
用户头像
夜海
用户头像
TanYIXuan20091207
用户头像
wzy_
用户头像
tonngw
用户头像
银桥
用户头像
CHN右手
用户头像
爱死温温
用户头像
IWYN
用户头像
XiAoYaNg
用户头像
新疆做题家
用户头像
代码敲出个数码宝贝
用户头像
czj_czj
用户头像
yxc的键盘
用户头像
明夜高歌

活动打卡代码 AcWing 1371. 货币系统

Acwer
2小时前
import java.util.Scanner;

public class Main{
    static long a[][] = new long[30][10010];
    static int w[] = new int[30];
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int v = scan.nextInt();
        int n = scan.nextInt();
        for(int i=1;i<=v;i++){
            w[i] = scan.nextInt();
        }
        a[0][0] = 1;
        for(int i=1;i<=v;i++){
            for(int j=0;j<=n;j++){
                for(int k=0;k*w[i]<=j;k++){
                    a[i][j] = a[i][j] +a[i-1][j-k*w[i]];
                }
            }
        }

        System.out.println(a[v][n]);
    }
}


活动打卡代码 AcWing 1371. 货币系统

Acwer
4小时前
import java.util.Scanner;

public class Main {
    static long f[][] = new long[30][10010];  //前i种硬币,金额不超过j,的最小种数。
    static int a[] = new int[30];
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int v = scan.nextInt();
        int n = scan.nextInt();

        for(int i=1;i<=v;i++){
            a[i] = scan.nextInt();
        }
        f[0][0] = 1;
        for(int i=1;i<=v;i++){
            for(int j=0;j<=n;j++){
                for(int k=0;k*a[i]<=j;k++){
                    f[i][j] = f[i][j] + f[i-1][j-k*a[i]];
                }
            }
        }

        System.out.println(f[v][n]);


    }
}


活动打卡代码 LeetCode 56. 合并区间

Acwer
20小时前
/*
    从这道题学到了一点语法知识。
    //把一维数组塞到集合中去,形成二维数组。
    List<int a[]> list = new ArrayList<>();

    2 Arrays.sort(a,new Comparator<int[]>{
        public int compare(int a1[],int a2[]){
            return a1[0] - a2[0];
        }
    });
*/
class Solution {
    public int[][] merge(int[][] intervals) {
        Arrays.sort(intervals,new Comparator<int[]>(){
            public int compare(int a1[],int a2[]){
                return a1[0]-a2[0];
            }
        });

        int st = (int)-2e9;
        int ed = (int)-2e9;
        List<int[]> list = new ArrayList<>();
        for(int i=0;i<intervals.length;i++){
            if(intervals[i][0]>ed){
                //排除第一个区间
                if(st!=-2e9){
                    list.add(new int[]{st,ed});
                }
                st = intervals[i][0];
                ed = intervals[i][1];
            }
            else{
                //合并区间
                ed = Math.max(ed,intervals[i][1]);
            }
        }
        if(st!=-2e9){
            list.add(new int[]{st,ed});
        }
        int a[][] = new int[list.size()][2];
        for(int i=0;i<list.size();i++){
        //或者用a[i] = list.get(i);  这种写法。
            a[i][0] = list.get(i)[0];
            a[i][1] = list.get(i)[1];
        }

        return a;

    }
}





Acwer
1天前
class Solution {
    public int largestSumAfterKNegations(int[] nums, int k) {
        Arrays.sort(nums);
        int s=0;
        int mi=11111;
        for(int i=0;i<nums.length;i++){
            if(k>0&&nums[i]<0){
                nums[i]=-nums[i];
                k--;
            }
            mi = Math.min(mi,Math.abs(nums[i]));
            s=s+nums[i];
        }
        if(k==0){
            return s;
        }
        else{
            if(k%2==0){
                return s;
            }
            else{
                return s-2*mi;
            }
        }

    }
}


活动打卡代码 AcWing 754. 平方矩阵 II

Acwer
1天前
/*
    i=j+a[i]-1
*/
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int temp = scan.nextInt();
        while(temp!=0){

            int a[][] = new int[temp][temp];
            fun(a,temp);
            for(int i=0;i<temp;i++){
                for(int j=0;j<temp;j++){
                    System.out.print(a[i][j]+" ");
                }
                System.out.println();
            }
            System.out.println();
            temp = scan.nextInt();
        }
    }

    public static void fun(int a[][],int temp){
        for(int i=0;i<temp;i++){
            for(int j=0;j<temp;j++){
                    a[i][j] = Math.abs(i-j)+1;
            }
        }
    }
}



Acwer
1天前

解题思路
最后一位数相乘的变化。注意:为什么不是s=s%10,如果12 * 15,
12的最后一位时2, * 15=30,则为3,问题是12*15=180,为8,两
者不符,说明s=s%10中的10要多加0.

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int s = 1;
        for(int i=1;i<=n;i++){
            s=s*i;
            while(s%10==0){
                s=s/10;
            }
            s=s%10;
        }
        System.out.println(s%10);
    }
}


活动打卡代码 AcWing 1381. 阶乘

Acwer
1天前
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int s = 1;
        for(int i=1;i<=n;i++){
            s=s*i;
            while(s%10==0){
                s=s/10;
            }
            s=s%100000;
        }
        System.out.println(s%10);
    }
}


活动打卡代码 AcWing 1532. 找硬币

Acwer
1天前
/*
    如果数组元素是int,char类型,用普通的数组即可,
    如果数组是String,object类型,用ArrayList即可。
*/
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = scan.nextInt();
        int a[] = new int[n];
        for(int i=0;i<n;i++){
            a[i] = scan.nextInt();

        }
        Arrays.sort(a);
        //双指针
        int l = 0,r = a.length-1;
        int flag=0;  //0表示没有找到
        while(l<r){
            if(a[l]+a[r]>m){
                r--;
            }
            else if(a[l]+a[r]<m){
                l++;
            }
            else{
                flag = 1;
                break;
            }
        }
        if(flag==1){
            System.out.println(a[l]+" "+a[r]);
        }
        else{
            System.out.println("No Solution");
        }
    }
}


活动打卡代码 LeetCode 507. 完美数

Acwer
2天前
class Solution {
    public boolean checkPerfectNumber(int num) {
        int s=0;
        if(num==1){
            return false;
        }
        for(int i=1;i*i<=num;i++){
            if(num%i==0){
                if(i*i==num){
                   s=s+i;
                   break; 
                }
                s=s+i;
                if(i!=1)
                s=s+(num/i);
            }
        }
        if(s==num){
            return true;
        }
        return false;
    }
}



Acwer
2天前
class Solution {
    public boolean detectCapitalUse(String word) {
        int a[] = new int[2];
        int flag=0;    //判断首字母是否是大写,0表示小写。
        for(int i=0;i<word.length();i++){
            if(word.charAt(i)>='A'&&word.charAt(i)<='Z'){
                if(i==0){
                    flag=1;
                }
                a[0]++;
            }
            else{
                a[1]++;
            }
        }
        if(a[0]==0&&a[1]!=0){
            return true;
        }
        if(a[0]!=0&&a[1]==0){
            return true;
        }
        if(word.length()>1&&flag==1&&a[0]==1){
            return true;
        }
        return false;

    }
}