![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
做题集合java
平时做的题目
天火同人z
这个作者很懒,什么都没留下…
展开
-
汉罗塔的移动次数及移动过程
/** * 问题:汉罗塔问题 * 思路:递归 * bug:wu */public class Test16 { public static void main(String[] args) { hanio('A','C', 'B',3); System.out.print(count(3)); } public static int count(int n) { //计算汉罗塔移动次数 if(n == 1)原创 2020-06-11 17:18:05 · 285 阅读 · 0 评论 -
根据边数打印杨辉三角
/** * 问题:根据边数打印杨辉三角 * 思路:将边数分为1,2,大于2三种情况分别处理,返回二维数组 * bug:1.第三次设置数组第一维长度时设置成了2,应为n * 2.打印数组时,只写了二维数组的一维 */import java.util.Scanner;public class Test15 { public static void main(String[] args) { Scanner sc = new Scanner(System.in)原创 2020-06-11 14:22:40 · 101 阅读 · 0 评论 -
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
import java.util.Arrays;/** * 问题:顺时针螺旋输出数组 * 题目特征:保持一种模式前进,遇到一定条件转换另一种模式前进 * 思路:用一个二维数组来不同取值来控制前进,设置变动的边界为改变的条件 */public class Test13 { public static void main(String[] args) { int[][] arr = new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};原创 2020-06-11 09:58:59 · 4881 阅读 · 1 评论 -
定义一个三维数组,并初始化之。写一个打印函数,负责打印三维数组中的数据,并测试。
/** * 问题:定义一个三维数组,并初始化之。写一个打印函数,负责打印三维数组中的数据,并测试。 */public class Test11 { public static void main(String[] args) { int[][][] arr = new int[2][][]; //对第一个二维数组赋值 arr[0] = new int[][]{{1,2},{3,4}}; //对第二个二维数组赋值 a原创 2020-06-10 21:23:42 · 501 阅读 · 0 评论 -
输入一个 m*n的矩阵 和一个n*p的矩阵,并初始化, 要求打印出两个矩阵的乘积。
/** * 问题:输入一个 m*n的矩阵 和一个n*p的矩阵,并初始化, 要求打印出两个矩阵的乘积。 * 3*2 2*4 -> 3*4 */public class Test10 { public static void main(String[] args) { int[][] str = {{1,2},{3,4},{5,6}}; int[][] ans = {{1,2,3,4},{5,6,7,8}}; int[][] result =原创 2020-06-10 21:23:01 · 836 阅读 · 0 评论 -
计数排序:对取值范围在1~100的数据集合排序
/** * 问题:对取值范围在1~100的数据集合排序 * 方法:计数排序 * */public class Test09 { public static void main(String[] args) { int[] str = {5, 100, 100, 20, 1,30, 20}; System.out.print("原数组:"); for(int i:str) System.out.print(i+" ");原创 2020-06-10 14:41:38 · 381 阅读 · 0 评论 -
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标,假设每种输入只会对应一个答案
import java.util.Scanner;/** * 问题:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值 * 那两个整数,并返回他们的数组下标,假设每种输入只会对应一个答案 * 方法一:遍历数组,每个元素与其后的元素相加判断 * 方法二:hash的方式 */public class Test07 { public static void main(String[] args) { int[] nums = {1,原创 2020-06-10 09:42:35 · 929 阅读 · 0 评论 -
给定一个排序数组,返回移除相同元素后数组的新长度。
/** * 问题:给定一个排序数组,返回移除相同元素后数组的新长度。 * 方法一:用另一个数组存储不相同的元素,核心步骤是前后比较,相等的话就让 * 后面的指针向后走直到不相等 * 方法二:用一个指针编历数组,用一个临时变量存储下一个不相等的元素并计数器加1 * 方法三:双指针法 */public class Test06 { public static void main(String[] args) { int[] str = {0, 2, 2, 3, 5, 6,原创 2020-06-10 09:28:41 · 327 阅读 · 0 评论 -
用星号打印出一个如图所示的空心菱形
思路方法一:将菱形的打印分解为打印每一行,再分解为打印两个的行和一个的行,在分解为打印空格和打印即可。方法二:利用的对称性,如果只有一个*号则记两次,则每行星号之和是一个固定的值。方法一代码public class Test02 { public static void main(String[] args) { for(int i = 0; i < 3; i++) System.out.print(" "); System.ou原创 2020-06-10 09:25:32 · 2145 阅读 · 0 评论 -
打印九九乘法表
打印九九乘法表代码public class Test01 { public static void main(String[] args) { for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { System.out.print(i + "*" + j + "=" + i * j + "\t"); }原创 2020-06-10 09:06:50 · 163 阅读 · 0 评论 -
约瑟夫环的解法
重写大神代码public class Test08 { public static int ysfdg(int sum, int out, int count) { if(count == 1) return (sum + out - 1) % sum; else return (ysfdg(sum-1,out,count-1) + out) % sum; }}转载 2020-06-10 10:48:10 · 104 阅读 · 0 评论