![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OJ
bo_Wen_h
这个作者很懒,什么都没留下…
展开
-
给定一个n*n的矩阵matrix,请把这个矩阵顺时针转动90度。
import java.util.Scanner;public class Main{ public static int[][] matrix; public static int n; public static void init() { Scanner scan = new Scanner(System.in); ...原创 2020-03-06 19:00:51 · 1465 阅读 · 0 评论 -
给定一个整型数组arr,请打印其中出现次数大于一半的数,如果没有这样的数,请输出-1
public class Main{ // 用map来存储各个数据出现的次数 public static Map<Integer, Integer> map; // 用number来存储数据的个数 public static int number; // 数据初始化 public static void ini...原创 2020-03-06 13:35:22 · 1487 阅读 · 0 评论 -
给定一个整型数组arr,再给定一个整数k,打印所有出现次数大于n/k的数,如果没有这样的数,请打印”-1“。
import java.util.Scanner;import java.util.TreeMap;import java.util.Iterator;import java.util.Map;public class Main{ // 用于存储n/k的值 public static int nlk; // 利用表存储数据 p...原创 2020-03-06 11:43:36 · 1079 阅读 · 0 评论 -
合并两个有序的单链表
给定两个升序的单链表的头节点head1和head2,请合并两个升序链表,合并后的链表依然升序,并返回合并后链表的头节点。import java.util.Scanner;public class Main{ // 把两个数据分别叫做left和right存在数组中 public static int [] left; publ...原创 2020-03-05 17:13:42 · 392 阅读 · 0 评论 -
按照左右半区的方式重新组合单链表
package com.era.Al;import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner s = new Scanner(System.in); int number = s.nextInt();...原创 2020-03-05 16:35:39 · 134 阅读 · 0 评论 -
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格
import java.util.Scanner;// 比较简单,不是我闲的慌,刷到这样的题了,写完了,不上传,感觉哪里不对劲public class Main{ public static String function() { Scanner scan = new Scanner(System.in); String[] array = ...原创 2020-03-03 17:08:36 · 1393 阅读 · 0 评论 -
现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
import java.util.Scanner;// 思路为建立一个N*3的矩阵,第一列为左孩子,第二列为右孩子, 第三列为该节点的高度(局部高度)// 初始化矩阵的左孩子和右孩子都是NULL(-1),HEIGHT(高度)初始化为1// 然后从后往前计算,最终累计到根节点0上public class Main{ // 存储数结构的矩阵 public st...原创 2020-03-03 16:53:38 · 520 阅读 · 0 评论 -
设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
import java.util.Arrays;import java.util.Scanner;// 主要还是依靠对自定类Number的排序// 取比较的两个数的最短长度为界,对两个数的每一位从左到右进行比较// 如果比较的过程中出现了有一位不相等的情况,则返回 N2-N1(逆序,得到由大到小的序列)// 如果前N位相等,则比较它们的长度,返回N2.length()-N1.lengt...原创 2020-03-03 15:29:18 · 1400 阅读 · 1 评论 -
给出一棵二叉树的先序和中序数组,通过这两个数组直接生成正确的后序数组。
import java.util.HashMap;import java.util.Map;import java.util.Scanner;// 思路,利用先序遍历和中序遍历将树构建出来,再用后续遍历遍历树,放在数组中,再输入结果// ps: 直接输出也可以,写注释的时候才想到可以直接输出// 先序遍历第一个一定是根节点// 中序遍历表示着遍历的顺序,将中序遍历的值作为Key,在数...原创 2020-03-02 15:15:24 · 1045 阅读 · 0 评论 -
统计和生成所有不同的二叉树
import java.util.Scanner;// OJ平台通过率低,小数据测试没有问题,如发现代码问题,欢迎下方留言// 大体思路为 n个节点,必然有一个为根节点,剩余n-1个要分配到左子树和有子树中// 从左子树为0个开始,一直到左右子树的个数相等,不用在增加左子树的节点,因为// 左右为对称结构,乘以二可以了// 输入8,结果为1430没有问题class Main{ ...原创 2020-03-02 13:46:04 · 253 阅读 · 0 评论 -
给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。
import java.util.Scanner;public class Main{ // 用于存储矩阵信息 public int [][] map; public int getShortRoute(int[][] map) { // 矩阵的高 in...原创 2020-03-02 09:57:19 · 7432 阅读 · 0 评论 -
给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。
给定一个n * m的矩阵a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。public class Finder{ public static int[][] route; public static int heigh; public static int with; ...原创 2020-03-01 23:33:28 · 4065 阅读 · 0 评论 -
派对的最大快乐值问题
import java.util.ArrayList;import java.util.Iterator;import java.util.List;// 我的思路是,从树的叶子开始计算// 到底是这个节点的开心值大,还是这个节点的子节点加起来开心值大// 如果是前者, 返回该节点的开心值,后者, 返回这个节点子节点的开心值public class Finder{ ...原创 2020-03-01 21:15:33 · 630 阅读 · 0 评论 -
二叉树节点间的最大距离问题
import java.util.Stack;// 我的思想路是,无论这个距离有多长,由于是二叉树,最大距离必产生在该树的某一个节点上// 对所有节点的左右子树计算后,相加再加一,找出最大值public class Finder{ public static Stack<Node> stack = new Stack<>(); ...原创 2020-03-01 20:32:20 · 220 阅读 · 0 评论