
Java刷题
Eyre_Chan
小白一枚
展开
-
DOTCPP:有关1848心得
有关1848题目描述输入输出思路代码题目描述求实数的绝对值。输入要求:输入数据有多组,每组占一行,每行包含一个实数输出要求:对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数输入输入数据有多组,每组占一行,每行包含一个实数输出对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数思路这个题主要就是需要读取实数,将实数转换为非负实数,然后注...原创 2019-07-13 21:33:22 · 197 阅读 · 0 评论 -
DOTCPP:有关1849心得
有关1849题目描述输入输出思路难点代码题目描述输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下: 90~100为A; 80~89为B; 70~79为C; 60~69为D; 0~59为E。输入输入数据有多组,每组占一行,由一个整数组成。输出对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:Score is error!思路因为使用的是Java语...原创 2019-07-14 09:41:34 · 322 阅读 · 0 评论 -
DOTCPP:有关1850心得
有关1850题目描述输入输出思路难点代码题目描述给定一个日期,输出这个日期是该年的第几天。输入输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见示例。输出表示该日期是该年的第几天。思路将输入的字符序列进行切割,获取对应的年月日,判断该年份是否为闰年,然后再计算这个日期是该年的第几天。难点本题难点在于分隔字符串,以及闰年非闰年天数的计算代码public ...原创 2019-07-14 21:34:04 · 135 阅读 · 0 评论 -
DOTCPP:有关1851心得
有关1851题目描述输入输出思路代码题目描述春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: ―水仙花数是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+3^3。 现在要求输出所有在m和n范围内的水仙花数。输入输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。输出对于每个测试实例,...原创 2019-07-15 09:00:57 · 298 阅读 · 0 评论 -
LeetCode--关于整数反转
LeetCode--关于整数反转题目描述思路代码难点题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路使用Java,有符号整数的最大值为Integer.MAX_VALUE,最小值为Integer...原创 2019-07-18 12:55:37 · 213 阅读 · 0 评论 -
LeetCode--关于回文数
LeetCode--关于回文数题目描述思路思路一思路二代码代码一代码二题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。思路思路一第一反应就是把整数转换为字符串,然后遍历整个字符串,判断正序和倒序是否一致。整数加空字符串就将整数转换成了字符串。思路二不将整数转换成字符串。对数字的后半部分进行反转。当数字的后半部分大于等于数字的前半部分时...原创 2019-07-18 13:51:48 · 181 阅读 · 0 评论 -
LeetCode--关于罗马数字转整数
LeetCode--关于罗马数字转整数题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。思路代码题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4...原创 2019-07-18 14:30:20 · 193 阅读 · 0 评论 -
LeetCode--关于两数之和
LeetCode--关于两数之和题目描述代码题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。代码public class TwoSum { public int[] twoSum(int[] nums, int ta...原创 2019-07-16 20:39:58 · 261 阅读 · 0 评论 -
LeetCode--关于加一
LeetCode--关于加一题目描述思路代码题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。思路没有数字为9时直接返回。最后一个数字为9时进位,前面数字如没有9则直接加一然后返回。如果数字全部为9,则新建一个长度增加的数组,第0位为1。代码p...原创 2019-07-23 22:01:19 · 112 阅读 · 0 评论 -
LeetCode--关于二进制求和
LeetCode--关于二进制求和题目描述思路注意事项代码题目描述给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。思路从字符串最右边开始,对每一位的和取余,添加进新的字符串中,同时记录进位情况,将进位加到前一位和中。遍历到字符串最左边后,若进位为1,则将其添加到新字符串中,然后将字符串反转。注意事项计算和的时候不能直接加上charAt获...原创 2019-07-23 23:05:39 · 133 阅读 · 0 评论 -
LeetCode--关于最长公共前缀
LeetCode--关于最长公共前缀题目描述思路注意事项代码题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。说明:所有输入只包含小写字母 a-z 。思路LCF(S1, S2, …, SN) = LCF(…(LCF(LCF(S1, S2), S3))…)注意事项记得判断字符串是否为空代码public class LongestCom...原创 2019-07-19 19:34:39 · 181 阅读 · 0 评论 -
LeetCode--关于有效的括号
LeetCode--关于有效的括号题目描述思路代码题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:1、左括号必须用相同类型的右括号闭合。2、左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。思路符号匹配问题,使用栈和映射。映射的键为左括号,值为对应的右括号。遍历字符串,如果对应的子字符串为左括号,...原创 2019-07-19 20:41:23 · 185 阅读 · 0 评论 -
LeetCode--关于合并两个有序链表
LeetCode--关于合并两个有序链表题目描述思路代码题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。思路如果两个链表当中有一个为空链表,则直接返回另一个链表。比较两个链表头节点的值,节点值较小的链表的头节点指向下一次合并的链表。使用递归。代码/** * Definition for singly-linked list. ...原创 2019-07-19 21:14:44 · 173 阅读 · 0 评论 -
LeetCode--关于删除排序数组中的重复项
LeetCode--关于合并两个有序链表题目描述思路代码题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。思路使用“双指针”,当nums[i] = nums[j]时,j加一,当nums[i]!=nums[j]时,i加一,且令nums[i]=nu...原创 2019-07-19 22:20:44 · 138 阅读 · 0 评论 -
LeetCode--关于爬楼梯
LeetCode--关于爬楼梯题目描述思路代码题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。思路爬n阶台阶的最后一步可能是爬1阶台阶,也可能是爬2阶台阶。所以爬n阶台阶的方法数量为爬n-1阶台阶的方法数量+爬n-2阶台阶的方法数量。可以使用递归的方法,但是递归效率较低,因为很...原创 2019-07-24 20:35:14 · 175 阅读 · 0 评论 -
LeetCode--关于删除排序链表中的重复元素
LeetCode--关于删除排序链表中的重复元素题目描述代码题目描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x)...原创 2019-07-24 21:06:27 · 248 阅读 · 0 评论 -
LeetCode--关于合并两个有序数组
LeetCode--关于合并两个有序数组题目描述思路代码题目描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。思路先合并两个数组,然后再利用sort算法进行排序。代码import java.util.Arrays;public class Merging { public void merge(int[]...原创 2019-07-24 21:32:41 · 337 阅读 · 0 评论 -
LeetCode--关于x的平方根
LeetCode--关于x的平方根题目描述思路思路一思路二代码代码一代码二题目描述实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。思路思路一直接使用Math.sqrt()函数,对结果取整思路二使用牛顿法,迭代公式为:A为x0的值代码代码一public class Sqr...原创 2019-07-25 09:42:43 · 158 阅读 · 0 评论 -
LeetCode--关于相交链表
LeetCode--关于相交链表题目描述思路代码题目描述编写一个程序,找到两个单链表相交的起始节点。思路单链表相交,即意味着从第一个相交节点开始,后面的节点都是相同的,相交的长度也是相同的。但是两个链表可能长度不同,就需要消除长度差。代码/** * Definition for singly-linked list. * public class ListNode { * ...原创 2019-08-02 22:59:31 · 167 阅读 · 0 评论 -
LeetCode--关于移除元素
LeetCode--关于移除元素题目描述思路代码题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。思路使用“双指针法”。代码public class Removing...原创 2019-07-21 22:56:18 · 120 阅读 · 0 评论 -
LeetCode--关于实现strStr()
@TOC题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。易错点要讨论字符串haystack和字符串needle三种长度比较的情况,不同的情况处理方式不一样。代码public class StrStr { publi...原创 2019-07-21 23:21:29 · 88 阅读 · 0 评论 -
LeetCode--关于相同的树
LeetCode--关于相同的树题目描述思路代码题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。思路两节点如果为空节点,则返回true。如果一方为空节点,则返回false。当前两节点如果值相等,则继续递归判断左右节点是否相同。代码/** * Definition for a binary tree node...原创 2019-07-25 21:10:23 · 114 阅读 · 0 评论 -
LeetCode--关于对称二叉树
LeetCode--关于对称二叉树题目描述思路代码题目描述给定一个二叉树,检查它是否是镜像对称的。思路二叉树镜像对称需要满足两个条件:1、两个子树的根节点值相同2、子树的右子树跟另一个子树的左子树镜像对称代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * ...原创 2019-07-25 22:30:56 · 175 阅读 · 0 评论 -
LeetCode--关于搜索插入位置
LeetCode--关于搜索插入位置题目描述代码题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。代码public class SearchingInsert { public int searchInsert(int[] nums, int target) { &...原创 2019-07-22 10:42:34 · 142 阅读 · 0 评论 -
LeetCode--关于报数
LeetCode--关于报数题目描述思路代码题目描述报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二...原创 2019-07-22 12:53:45 · 193 阅读 · 0 评论 -
LeetCode--关于零钱兑换
LeetCode--关于零钱兑换题目描述代码题目描述给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。代码public class ChangingCoin { public int changeCoin(int[] coins, int amount) { ...原创 2019-08-03 20:34:13 · 315 阅读 · 0 评论 -
LeetCode--关于最大子序和
LeetCode--关于最大子序和题目描述思路代码题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。思路常规的题目,有三四种解法,这里使用算法复杂度为O(n)的方法。maxSum记录当前最大子序和,thisSum记录当前某子序和。maxSum初始化为第一个元素的值,thisSum初始化为0。遍历整个数组,thisSum加上当...原创 2019-07-22 16:47:54 · 183 阅读 · 0 评论 -
LeetCode--关于最后一个单词的长度
LeetCode--关于最后一个单词的长度题目描述思路代码题目描述给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。思路将字符串转换为字符序列。从最后一个字符开始遍历,若为空格,则判断count是否为0,为0时继续循环,不为0时跳出循环,若不为空格,则count加一。...原创 2019-07-22 17:39:14 · 233 阅读 · 0 评论 -
LeetCode--关于二叉树的最大深度
LeetCode--关于二叉树的最大深度题目描述思路代码题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。思路写一个函数,传入当前节点和当前深度,判断当前节点是否为空节点,若不为空节点则count加1,若为空节点则返回count。返回左右子树深度较大者。代码/** * Definition for a binary tree node....原创 2019-07-26 21:13:03 · 156 阅读 · 0 评论 -
LeetCode--关于二叉树的层次遍历 II
LeetCode--关于二叉树的层次遍历 II题目描述思路代码题目描述给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)思路采用遍历的方式,新建一个函数,传入当前节点、深度、当前列表,若当前节点为空节点,则直接返回,若当前列表的长度小于深度+1(深度从0开始),则往当前列表中添加一个新的列表。将当前节点的值添加进对应深度的列表中。当...原创 2019-07-26 22:25:42 · 204 阅读 · 0 评论 -
LeetCode--关于将有序数组转换为二叉树
LeetCode--关于将有序数组转换为二叉树题目描述思路注意代码题目描述将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。思路跟中序遍历相似,先选出根节点,然后再确定左右子树,确定左右子树时也先确定子树的根节点。注意注意数组的越界问题代码/** * Definition fo...原创 2019-07-27 21:21:46 · 427 阅读 · 0 评论 -
LeetCode--关于平衡二叉树
LeetCode--关于平衡二叉树题目描述思路代码题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。思路采用递归的方法代码/** * Definition for a binary tree node. * public class TreeNode { * int va...原创 2019-07-27 22:25:04 · 94 阅读 · 0 评论 -
LeetCode--关于二叉树的最小深度
LeetCode--关于二叉树的最小深度题目描述思路注意代码题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。思路采用递归的方式。注意注意平凡例子的最小深度,根节点为空,以及根节点的左右子节点为空的情况。还要注意最小深度的定义。代码/** * Definition for a binary tree node. * public ...原创 2019-07-28 19:32:49 · 138 阅读 · 0 评论 -
牛客网--关于子串判断
牛客网--关于子串判断题目描述代码题目描述现有一个小写英文字母组成的字符串s和一个包含较短小写英文字符串的数组p,请设计一个高效算法,对于p中的每一个较短字符串,判断其是否为s的子串。给定一个string数组p和它的大小n,同时给定string s,为母串,请返回一个bool数组,每个元素代表p中的对应字符串是否为s的子串。保证p中的串长度小于等于8,且p中的串的个数小于等于500,同时保证...原创 2019-08-18 19:30:30 · 215 阅读 · 0 评论 -
牛客网--关于魔术索引1
牛客网--关于魔术索引1题目描述代码题目描述在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i]=i。给定一个升序数组,元素值各不相同,编写一个方法,判断在数组A中是否存在魔术索引。请思考一种复杂度优于o(n)的方法。给定一个int数组A和int n代表数组大小,请返回一个bool,代表是否存在魔术索引。测试样例:[1,2,3,4,5]返回:false代码import ja...原创 2019-08-18 19:46:08 · 195 阅读 · 0 评论 -
牛客网--关于二维数组中的查找
牛客网--关于二维数组中的查找题目描述代码题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码暴力法public class Solution { public boolean Find(int target, int [][] ...原创 2019-08-19 09:28:24 · 189 阅读 · 0 评论 -
牛客网--关于调整数组顺序使奇数位于偶数前面
牛客网--关于调整数组顺序使奇数位于偶数前面题目描述代码题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。代码类似冒泡排序思想public class Solution { public void reOrderArray(int [] array) {...原创 2019-08-19 09:55:54 · 112 阅读 · 0 评论 -
牛客网--关于区间表达
牛客网--关于区间表达题目描述代码题目描述牛牛的老师给出了一个区间的定义:对于x ≤ y,[x, y]表示x到y之间(包括x和y)的所有连续整数集合。例如[3,3] = {3}, [4,7] = {4,5,6,7}.牛牛现在有一个长度为n的递增序列,牛牛想知道需要多少个区间并起来等于这个序列。例如:{1,2,3,4,5,6,7,8,9,10}最少只需要[1,10]这一个区间{1,3,5,...原创 2019-08-14 20:07:00 · 394 阅读 · 0 评论 -
牛客网--关于井字棋
牛客网--关于井字棋题目描述代码题目描述对于一个给定的井字棋棋盘,请设计一个高效算法判断当前玩家是否获胜。给定一个二维数组board,代表当前棋盘,其中元素为1的代表是当前玩家的棋子,为0表示没有棋子,为-1代表是对方玩家的棋子。代码import java.util.*;public class Board { public boolean checkWon(int[][] ...原创 2019-08-14 20:30:13 · 299 阅读 · 0 评论 -
牛客网--关于非递减序列
牛客网--关于非递减序列题目描述输入描述输出描述代码题目描述对于一个长度为n的整数序列,你需要检查这个序列是否可以是非递减序列,假如你最多可以改变其中的一个数。非递减序列的定义是:array[i]<=array[i+1], for 1<=i<n;输入描述输入是一个长度为n的整数序列。输出描述输出为; 是为1; 否为0代码import java.util.*;...原创 2019-08-14 20:47:17 · 543 阅读 · 0 评论