每日算法题:19.5.22

    xiaoxiao2022-07-06  220

    输入一个矩阵,按照从外到里以顺时针的顺序依次打印出每一个数字

    public class Test1 { public static void main(String[] args) { int[][] array = input(); output(array,0,array.length-1); } public static int[][] input(){ int[][] array = new int[4][4]; int num = 0; for (int i = 0; i < array.length; i++) { int[] row = array[i]; for (int j = 0; j < row.length;j++) { array[i][j] = ++num; } } return array; } public static void output(int[][] num,int start,int end){ if (start>end) { return; } for (int i = start; i <= end; i++) { System.out.print(num[start][i]+" "); } for (int i = start+1; i <= end; i++) { System.out.print(num[i][end]+" "); } for (int i = end-1; i >=start; i--) { System.out.print(num[end][i]+" "); } for (int i = end-1; i >start; i--) { System.out.print(num[i][start]+" "); } output(num,start+1,end-1); } }

    给出一个排序好的数组和一个数,求数组中连续元素的和等于所给数的子数组

    public class Test2 { public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7,8,9}; int sum = 11; findSum(array,sum,0); } public static void findSum(int[] array, int sum,int start){ if (start>=array.length-1) { return; } int sum1 = 0; for (int i = start; i < array.length; i++) { sum1 = sum1+array[i]; if (sum1==sum) { bianLi(array,start,i); findSum(array,sum,start+1); return; } } findSum(array,sum,start+1); } public static void bianLi(int[] array,int start,int end){ if (start>end || start>array.length-1 || end>array.length-1) { return; } for (int i = start; i <= end; i++) { System.out.print(array[i]+" "); } System.out.println(); } }

     

    最新回复(0)