
Java
阴天快乐、、
这个作者很懒,什么都没留下…
展开
-
LeetCode题库 107. 二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]代码:/** * Definition for a binary tree node. * public class TreeNode { *...原创 2020-10-30 22:09:08 · 378 阅读 · 0 评论 -
LeetCode题库 104. 二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。代码:/** * Definition for a binary tree node. * public class TreeNode { * int v...原创 2020-10-30 20:21:05 · 345 阅读 · 0 评论 -
LeetCode题库 101对称二叉树(java)
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3/** * Definition for a binary tree node. * public class TreeNode { * ...原创 2020-10-14 23:32:41 · 206 阅读 · 0 评论 -
LeetCode题库100. 相同的树(java)
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 / \ ...原创 2020-09-29 22:32:01 · 260 阅读 · 0 评论 -
LeetCode题库 88. 合并两个有序数组(java)
给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]解法一:直接...原创 2020-09-26 23:32:16 · 212 阅读 · 0 评论 -
LeetCode题库 83删除排序链表中的重复元素(java)
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x)..原创 2020-09-21 21:13:50 · 200 阅读 · 0 评论 -
LeetCode题库 70爬楼梯(java)
假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶解法一:递归(会超时)public class Main {...原创 2020-09-21 20:42:45 · 252 阅读 · 0 评论 -
LeetCode题库 69x的平方根(java)
实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。解法一:直接使用sqrt函数public class Main { public static void main(String[] args) { Sys...原创 2020-09-20 12:33:24 · 322 阅读 · 1 评论 -
LeetCode题库 67二进制求和(java)
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.length <= 10^4字符串如果不是 "0" ,就都不含前导零。public class Main { ...原创 2020-09-18 20:20:51 · 232 阅读 · 0 评论 -
LeetCode题库 66加一 (java)
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。public class Main { public static void main(String[] ar..原创 2020-09-18 10:53:37 · 145 阅读 · 0 评论 -
LeetCode题库 58最后一个单词的长度(java)
给定一个仅包含大小写字母和空格' '的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: "Hello World"输出: 5public class Main { public static void main(String[] args) { System.out.println(lengthOf...原创 2020-09-17 23:00:49 · 156 阅读 · 0 评论 -
LeetCode题库 53最大子序和(java)
给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。思路:从头开始遍历数组,用sum累加数字和,若数字和小于0,记为0;若数字和大于0则加入最终结果中;若所有数字均为负数则选择最大的一个数并返回。import java.uti...原创 2020-09-17 22:05:39 · 145 阅读 · 0 评论 -
LeetCode题库 38外观数列(java)
给定一个正整数 n(1 ≤n≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1描述前一项,这个数是 1 即 “一个 1 ”,记作 11描述前一项,这个数是 11 即 “两个 1 ” ,记作 21描述前一项,这个数是 21 即 “一个 ...原创 2020-09-17 21:21:51 · 142 阅读 · 0 评论 -
LeetCode题库 35搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0public class Main { public static void main(String[] ar.原创 2020-09-17 19:04:07 · 121 阅读 · 0 评论 -
LeetCode题库 28实现strStr()(java)
实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出: -1说明:当needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的...原创 2020-09-17 18:36:01 · 210 阅读 · 0 评论 -
LeetCode题库 27移除元素(java)
给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,1,2,...原创 2020-09-17 11:06:22 · 152 阅读 · 0 评论 -
LeetCode题库 26删除排序数组中的重复项(java)
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, ...原创 2020-09-16 20:52:47 · 98 阅读 · 0 评论 -
LeetCode题库 21合并两个有序链表(java)
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4public class Main { public static void main(String[] args) { ListNode l11 = new ListNode(1); ListNode l12 = new ListNode(2)..原创 2020-09-16 17:12:49 · 232 阅读 · 0 评论 -
LeetCode题库 20有效的括号(java)
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输入: "([)]"输出: false示例5:输入: "{[]}"输出: true思路:设置一个字...原创 2020-09-15 16:27:31 · 204 阅读 · 0 评论 -
LeetCode题库 14最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。public class Main { public static void main(String[] args) { String[] x = { ...原创 2020-09-14 22:25:04 · 290 阅读 · 0 评论 -
LeetCode题库 13罗马数字转整数(java)
罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。通常...原创 2020-09-14 19:45:02 · 1058 阅读 · 0 评论 -
LeetCode题库 9回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。public class Main { public static void main(String[] arg.原创 2020-09-14 18:50:30 · 143 阅读 · 0 评论 -
LeetCode题库 7整数反转(java)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。public class Main { public static void main(String[] args) { ...原创 2020-09-14 18:24:46 · 189 阅读 · 0 评论 -
LeetCode题库 1两数之和(java解题)
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]//public class Main { /*public static void main(String[] args)...原创 2020-09-13 21:37:24 · 186 阅读 · 0 评论 -
Java例4.5电视节目
例4.5中模拟了某人买一台电视,即某人将电视作为自己的一个成员,并通过调用一个方法将某个电视的引用传递给自己的电视成员。代码:TV.javapublic class TV { int channel;//电视频道 void setChannel(int m){ if(m>=1){ channel=m; } } int getChannel(){ return原创 2017-05-20 15:23:24 · 1693 阅读 · 0 评论 -
Java例15.13——使用MVC结构计算三角形面积
MVC是一种通过模型、视图、控制器构造一个软件或组件的理想办法。在例15.13中首先编一个封装三角形的类,然后再编写一个窗口。要求窗口使用3个文本框和1个文本区为三角形对象中的数据提供视图,其中3个文本框用来显示和更新三角形对象的3个边的长度,文本区对象用来显示三角形的面积。窗口有一个按钮,用户单击该按钮后,程序用3个文本框中的数据分别作为三角形的3个边的长度,并计算三角形的面积显示在文本框中原创 2017-05-25 17:48:32 · 9160 阅读 · 1 评论 -
Java 组件及事件处理实训 实训1: 编写一个窗体程序,能够对文本区中的文字设置字体和大小。
实训要求: 使用两个下拉框分别存放字体和字号的选项。其中字体从当前操作系统中获取。选择字体和字号后,文本区中的文字会相应改变。代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class FontChange extends JFrame implements ItemList原创 2017-10-27 20:43:18 · 1921 阅读 · 0 评论 -
Java 实训5 编写一个窗体应用程序模拟交通信号灯
题目描述:在窗口的北面添加一个下拉列表,该下拉列表有“红灯”,“绿灯”,“黄灯”三个选项。在窗口的中心添加一个画布,当用户在下拉列表选择某项后,画布上绘制相应的信号灯。参考结果:代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.Graphics;pu原创 2017-10-28 19:15:19 · 4391 阅读 · 0 评论 -
Java 组件及事件处理实训 实训2:编写一个窗体程序,用于计算一元二次方程
代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class EquationFrame extends JFrame implements ActionListener { SquareEquation equation; JTextField textA, textB, textC原创 2017-10-27 20:49:18 · 1661 阅读 · 0 评论 -
Java 实训1:编写一个窗体程序显示日历表。
实训!要求:1.简单实现日历功能,能查看前月后月的日历功能。2.使用JTable 组件显示日历。参考结果:代码:CalendaBean.javaimport java.util.Calendar;public class CalendaBean { Test test; String[] day; int year = 2017, month =原创 2017-11-07 19:11:51 · 1938 阅读 · 1 评论 -
Java 15.8.1 实验1 算术测试
实验要求 编写一个算术测试的小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确,ComputerFrame对象负责为算术题目提供视图,比如用户可以通过ComputerFrame对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案,MainClass是软件主类。代码MainCla原创 2017-10-31 19:29:38 · 12825 阅读 · 1 评论 -
Java 实训4 编写一个窗体程序显示日历
实训要求:1.使用BorderLayout 进行总体布局2.在North 位置放置包含两个按钮( 上月和下月)的Panel3.在South 位置放置一个Label 用于显示当前年份和月份4.在Center 位置放置一个显示日历的Panel5.显示日历的Panel 设置7 行7 列的GridLayout 布局,其中第1行放置7个按钮显示周“几”,其原创 2017-11-02 18:03:58 · 9620 阅读 · 1 评论 -
蓝桥杯 历届试题 分糖果(Java)
问题描述 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子。 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。输入格式原创 2017-11-17 11:04:17 · 734 阅读 · 0 评论 -
Java中的进制转换
Java中的进制转换:十进制转成十六进制: Integer.toHexString(int i) (注意转换后字母默认为小写)十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toStr原创 2017-11-17 17:15:29 · 350 阅读 · 0 评论 -
蓝桥杯 历届试题 翻硬币(Java)
问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?原创 2017-11-17 19:00:18 · 753 阅读 · 0 评论 -
YTU OJ 3134: 动态规划基础题目之数字三角形(Java解题)
题目描述73 88 1 02 7 4 44 5 2 6 5(Figure 1)Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts原创 2017-11-17 20:55:02 · 371 阅读 · 0 评论 -
YTU OJ 3135: 动态规划基础题目之最长上升子序列(Java解题)
Description一个数的序列bi,当b1 b2 < ... bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 i1 i2 < ... iK 你的任务,就是对于给定的序列,求出最长上升子序列的长度。Input输入的第一原创 2017-11-18 14:22:15 · 342 阅读 · 0 评论 -
YTU OJ 3137: 动态规划基础题目之拦截导弹(Java解题)
Description某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。Input原创 2017-11-18 14:44:07 · 449 阅读 · 0 评论 -
YTU OJ 3141: 动态规划进阶题目之神奇的口袋(Java解题)
Description有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。Input原创 2017-11-18 16:39:33 · 584 阅读 · 0 评论 -
蓝桥杯 算法训练 2的次幂表示(Java解题)
问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0 现在约定幂次用括号来表示,即a^b表示为a(b) 此时,137可表示为:2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2表示) 3=2原创 2017-11-28 18:26:24 · 1037 阅读 · 1 评论