Test1:
两个数组,输出数组1中有 而 数组2 中没有的元素
package vivo;
public class Test1 {
public static void test1(int[] arr1 , int[] arr2){
if(arr1 == null){
return;
}
if(arr2 == null){
for(int i = 0;i < arr1.length;i++){
System.out.print(arr1[i] + " ");
}
}
for(int i = 0;i < arr1.length; i++){
boolean flag = false;
for(int j = 0;j < arr2.length; j++){
if(arr1[i] == arr2[j]){
flag = true;
}
}
if(!flag){
System.out.print(arr1[i] + " ");
}
}
}
public static void main(String[] args){
int[] arr1 = {1,2,3,4,5};
int[] arr2 = {1,3};
test1(arr1 , arr2);
}
}
Test2:将一个链表中m到n的部分逆序
至今没研究明白。。。
Test3:0 - 1背包
package test;
import java.util.Scanner;
public class test1 {
static int N;//物品 数量
static int m;//总钱数
static int[] A;//价格
static int[] V;//热度
public static void main(String[] args) {
Scanner in = new Scanner(System.in
);
m = in.nextInt();
N = in.nextInt();
A = new int[N + 1];
V = new int[N + 1];
for (int i = 1; i < N+1; i++) {
A[i] = in.nextInt();
}
for (int i = 1; i < N+1; i++) {
V[i] = in.nextInt();
}
in.close();
int[][] dp = new int[A.length + 1][m + 1];
for (int i = 1; i <= A.length; i++) {
for (int j = 1; j <= m; j++) {
dp[i][j] = dp[i-1][j];
if (j >= A[i-1]) {
dp[i][j] = Math.max(dp[i-1][j], dp[i-1][j-A[i-1]] + V[i-1]);
}
}
}
//return dp[A.length][m];
System.out.println(dp[A.length][m]);
}
}