自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 反转数字

反转数字题目描述将给出的整数x翻转。例1:x=123,返回321例2:x=-123,返回-321你有思考过下面的这些问题么?如果整数的最后一位是0,那么输出应该是什么?比如10,100你注意到翻转后的整数可能溢出吗?假设输入是32位整数,则将翻转10000000003就会溢出,你该怎么处理这样的样例?抛出异常?这样做很好,但是如果不允许抛出异常呢?这样的话你必须重新设计函数(比如添加一个额外的参数)。代码import java.util.*;public class Solution

2020-09-28 21:29:14 220

原创 矩阵元素查找

矩阵元素查找题目描述已知int一个有序矩阵mat,同时给定矩阵的大小n和m以及需要查找的元素x,且矩阵的行和列都是从小到大有序的。设计查找算法返回所查找元素的二元数组,代表该元素的行号和列号(均从零开始)。保证元素互异。代码import java.util.*;public class Finder { public int[] findElement(int[][] mat, int n, int m, int x) { // write code here

2020-09-28 21:09:36 417

原创 两个链表的第一个公共结点

两个链表的第一个公共结点题目描述输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)代码/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode

2020-09-28 20:40:01 35

原创 数组中未出现的最小正整数

数组中未出现的最小正整数题目描述给定一个无序数组arr,找到数组中未出现的最小正整数例如arr = [-1, 2, 3, 4]。返回1arr = [1, 2, 3, 4]。返回5[要求]时间复杂度为O(n),空间复杂度为O(1)代码import java.util.*;public class Solution { /** * return the min number * @param arr int整型一维数组 the array * @ret

2020-09-28 20:28:54 248

原创 链表中的节点每k个一组翻转

链表中的节点每k个一组翻转题目描述将给出的链表中的节点每 k\ k k 个一组翻转,返回翻转后的链表如果链表中的节点数不是 k\ k k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。要求空间复杂度 O(1)例如:给定的链表是1→2→3→4→5对于 k=2, 你应该返回 2→1→4→3→5对于 k=3, 你应该返回 3→2→1→4→5代码import java.util.*;/* * public class ListNode { * int

2020-09-26 21:59:25 2871

原创 数组中的最长连续子序列

数组中的最长连续子序列题目描述给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)代码import java.util.*;public class Solution { /** * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ public int MLS (int

2020-09-26 19:48:51 305

原创 删除有序链表中重复出现的元素

删除有序链表中重复出现的元素给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出的链表为1→2→3→3→4→4→5, 返回1→2→5给出的链表为1→1→1→2→3, 返回2→3代码import java.util.*;/* * public class ListNode { * int val; * ListNode next = null; * } */public class Solution { /**

2020-09-26 18:57:53 702

原创 求二叉树的层序遍历

求二叉树的层序遍历题目描述给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)例如:给定的二叉树是{3,9,20,#,#,15,7},该二叉树层序遍历的结果是[[3],[9,20],[15,7]]代码import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */

2020-09-25 21:47:13 211

原创 跳台阶

跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。代码public class Solution { private static int[] f = new int[40]; static { f[0] = 0; f[1] = 1; f[2] = 2; for (int i = 3; i <= 39; i++) {

2020-09-25 21:03:08 44

原创 数组中只出现一次的数字

数组中只出现一次的数字题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。代码//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果public class Solution { public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) { int length = array.length;

2020-09-25 20:55:12 257

原创 二叉树根节点到叶子节点的所有路径和

二叉树根节点到叶子节点的所有路径和题目描述给定一个仅包含数字 0−9\ 0-9 0−9 的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。例如根节点到叶子节点的一条路径是1→2→31\to 2\to 31→2→3,那么这条路径就用 123\ 123 123 来代替。找出根节点到叶子节点的所有路径表示的数字之和例如:这颗二叉树一共有两条路径,根节点到叶子节点的路径 1→21\to 21→2 用数字 12\ 12 12 代替根节点到叶子节点的路径 1→31\to 31→3 用数字

2020-09-25 20:25:52 2907

原创 数字字符串转IP

数字字符串转IP题目描述现在有一个只包含数字的字符串,将该字符串转化成IP地址的形式,返回所有可能的情况。例如:给出的字符串为"25525511135",返回[“255.255.11.135”, “255.255.111.35”]. (顺序没有关系)代码import java.util.*;public class Solution { /** * * @param s string字符串 * @return string字符串ArrayList

2020-09-24 21:07:33 215

原创 平衡二叉树

平衡二叉树题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树代码public class Solution { public boolean IsBalanced_Solution(TreeNode root) { return getDepth(root) != -1; } public int getDepth(TreeNode root){ if(root==null) r

2020-09-24 20:13:43 46

原创 合并有序的字符串

合并有序的字符串题目描述给出两个有序的整数数组 A 和 B,请将数组 B合并到数组 A 中,变成一个有序的数组注意:可以假设 A 数组有足够的空间存放 B数组的元素, A 和 B 中初始的元素数目分别为 m 和 n代码public class Solution { public void merge(int A[], int m, int B[], int n) { int l = A.length-1; n--; m--;

2020-09-24 19:27:06 1167

原创 寻找第K大

寻找第K大题目描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。测试样例代码import java.util.*;public class Finder { public int findKth(int[] a, int n, int K) { // write code here int l = 0,h = n-1, y = 0;

2020-09-19 10:02:10 50

原创 合并有序链表

合并有序链表题目描述将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的。代码import java.util.*;/* * public class ListNode { * int val; * ListNode next = null; * } */public class Solution { /** * * @param l1 ListNode类 * @param l2 ListNode类

2020-09-18 21:29:08 97

原创 最低公共祖先

最低公共祖先题目描述给定一棵二叉树以及这棵树上的两个节点 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。代码import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */public class Solution { /** * * @param roo

2020-09-18 21:27:31 107

原创 找字符串中最长无重复字符的子字符串

找字符串中最长无重复字符的子字符串题目描述给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)代码import java.util.*;public class Solution { /** * * @param arr int整型一维数组 the array * @return int整型 */ public int maxLength (int[] arr) { // write co

2020-09-17 21:06:48 839

原创 二分查找

二分查找题目描述请实现有重复数字的有序数组的二分查找。输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。代码import java.util.*;public class Solution { /** * 二分查找 * @param n int整型 数组长度 * @param v int整型 查找值 * @param a int整型一维数组 有序数组 * @return int整型 */

2020-09-17 19:54:29 615

原创 反转链表

反转链表题目描述输入一个链表,反转链表后,输出新链表的表头。代码/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode ReverseList(ListNode head) { ListNode pre =

2020-09-17 19:21:47 87

原创 实现二叉树的先序,中序,后序

实现二叉树的先序,中序,后序题目描述分别按照二叉树先序,中序和后序打印所有的节点。代码import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */public class Solution { /** * * @param root TreeNode类 the ro

2020-09-17 19:03:38 184

原创 设计LRU缓存结构

设计LRU缓存结构题目描述设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值[要求]set和get方法的时间复杂度为O(1)某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。若opt=1,接下来两个整数x, y,表示set(x, y)若opt=

2020-09-17 18:58:40 1115

原创 密码破译

密码破译题目描述我们来做一个简单的密码破译游戏。破译的规则很简单,将数字转换为字母,1转化为a,2转化为b,依此类推,26转化为z。现在输入的密码是一串数字,输出的破译结果是该数字串通过转换规则所能产生的所有字符串。输入描述:多行数据,每行为一个数字串。保证数字串的总长度不超过1000,每行数据的答案至少有1个且不超过1000个。输出描述:多行数据,每行对应输出通过数字串破译得到的所有字符串,并按照字符串顺序排列,字符串之间用单个空格分隔。每行开头和结尾不允许有多余的空格。解题思路待代码

2020-09-12 21:16:36 1140

原创 句子反转

句子反转题目描述给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”输入描述:输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)输出描述:对于每个测试示例,要求输出句子中单词反转后形成的句子解题思路略代码import java.io.*;public class Main { public static v

2020-09-12 20:18:43 156

原创 电话号码分身

电话号码分身题目描述继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 (“ZERO”, “ONE”, “TWO”, “THREE”, “FOUR”, “FIVE”, “SIX”, “SEVEN”, “EIGHT”, “NINE”), 然后随机打乱这些字母,所生成的字符串即为电话号码对应的分身。输入描述:第一行是一个整数T(1 ≤ T ≤ 100)表示测试样例数;接下来T行,每行给定一个分身后的电话号码的分身

2020-09-12 19:49:42 1036

原创 集合合并

集合合并题目描述给定若干个32位int数字集合,每个集合中的数字无重复,譬如:{1,2,3} {2,5,6} {8}将其中交集不为空的集合合并,保证合并完成后所有集合之间无交集,输出合并后的集合个数以及最大集合中元素的个数。输入描述:输入格式:第一行为一个数字N,表示集合数。接下来N行,每行一个非空集合,包含若干个数字,数字之间用空格分开。假设第i个集合的大小为Si,数据满足N<=100000,ΣSi<=500000输出描述:待更输出格式:第一行为合并后的集合

2020-09-11 22:42:35 2195

原创 构建短字符串

构建短字符串题目描述给定任意一个较短的子串,和另一个较长的字符串,判断短的字符串是否能够由长字符串中的字符构建出来,且长串中的每个字符只能用一次。输入描述:一行数据包括一个较短的字符串S和一个较长的字符串T,用一个空格分隔。保证1<=|S|<=|T|<=100000。输出描述:如果短的字符串可以由长字符串中的字符构建出来,输出字符串 “true”,否则输出字符串 “false”。解题思路略代码import java.io.BufferedReader;import j

2020-09-10 22:59:14 324

原创 爬楼梯

爬楼梯题目描述在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。请问计算出你可以采用多少种不同的方式爬完这个楼梯。输入描述:一个正整数n(n<=100),表示这个楼梯一共有多少阶输出描述:一个正整数,表示有多少种不同的方式爬完这个楼梯解题思路斐波纳契可用递归,但是耗时间;实际也是动态规划,但这里每一轮只需要知道f1,f2即可,不需要多余的空间代码import java.io.BufferedReader;import java.io.InputStreamReader;i

2020-09-10 22:05:36 71

原创 资产包打包

资产包打包题目描述在金融资产交易中,经常涉及到资产包的挑选打包。在资产包打包过程中,每种类型的资产有固定的数量与价值,需选择某几种资产打包,使得资产包总价值最大。打包时每种资产只能整体打包,不能分割。假设现有可容纳M条资产的资产包,另外有N种资产。资产Na数量为Ta条,总价值为Va元;资产Nb数量为Tb条,总价值为Vb元;资产Nc数量为Tc条,总价值为Vc元…;资产Nn数量为Tn,总价值为Vn。编写算法,挑选哪些类型资产放入资产包可使得资产包总价值最大?输入描述:资产总量,资产种类,每类资产条数,每

2020-09-10 21:17:06 786

原创 最少立方数之和

最少立方数之和题目描述给出一个数字N(0<N<1000000),将N写成立方数和的形式,求出需要的最少立方数个数。例如N=17,1+8+8 = 17,最少需要3个立方数,则输出3。N= 28,1+1+1+1+8+8+8=28, 需要7个立方数,1+27=28,需要2个立方数,所以最少立方数为2,则输出2。输入描述:一个数字N(0<N<1000000)输出描述:最少立方数个数解题思路代码import java.util.*;public class Main{

2020-09-07 23:14:16 355

原创 进制转换

进制转换题目描述设计一个函数, 可以将任意十进制的数, 转换成任意2到9的进制表示的形式输入描述:需要转换的数字x(0<=x<=1e18) 转换使用的进制k(2<=k<=9)输出描述:对应进制的结果解题思路略代码import java.util.*;public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in)

2020-09-07 22:45:16 99

原创 小米大礼包

小米大礼包题目描述小米之家是成人糖果店。里面有很多便宜,好用,好玩的产品。中秋节快到了,小米之家想给米粉们准备一些固定金额大礼包。对于给定的一个金额,需要判断能不能用不同种产品(一种产品在礼包最多出现一次)组合出来这个金额。聪明的你来帮帮米家的小伙伴吧。输入描述:输入 N (N 是正整数, N <= 200)输入 N 个价格p(正整数, p <= 10000)用单空格分割输入金额 M(M是正整数,M <= 100000 )输出描述:能组合出来输出 1否则输出 0解题思

2020-09-06 22:44:28 320

原创 矩形重叠

题目描述平面内有n个矩形, 第i个矩形的左下角坐标为(x1[i], y1[i]), 右上角坐标为(x2[i], y2[i])。如果两个或者多个矩形有公共区域则认为它们是相互重叠的(不考虑边界和角落)。请你计算出平面内重叠矩形数量最多的地方,有多少个矩形相互重叠。输入描述:输入包括五行。第一行包括一个整数n(2 <= n <= 50), 表示矩形的个数。第二行包括n个整数x1[i](-10^9 <= x1[i] <= 10^9),表示左下角的横坐标。第三行包括n个整数y

2020-09-06 21:42:37 272

原创 数对

数对题目描述牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。牛牛希望你能帮他计算一共有多少个可能的数对。输入描述:输入包括两个正整数n,k(1 <= n <= 10^5, 0 <= k <= n - 1)。输出描述:对于每个测试用例, 输出一个正整数表示可能的数对数量。解题思路代码import java.util.Scanner;public clas

2020-09-04 23:24:58 181

原创 迷路的牛牛

迷路的牛牛题目描述牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个正整数,表示转方向的次数N(N<=1000)。接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转。输出描述:输出牛牛最后面向的方向,N表示北,S表示南,E表示东,W表示西。解题思路R_step = 3*L_step ;代码import java.

2020-09-04 21:03:13 76

原创 安置路灯

安置路灯题目描述小Q正在给一条长度为n的道路设计路灯安置方案。为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用’.‘表示, 不需要照亮的障碍物格子用’X’表示。小Q现在要在道路上设置一些路灯, 对于安置在pos位置的路灯, 这盏路灯可以照亮pos - 1, pos, pos + 1这三个位置。小Q希望能安置尽量少的路灯照亮所有’.'区域, 希望你能帮他计算一下最少需要多少盏路灯。输入描述:输入的第一行包含一个正整数t(1 <= t <= 1000), 表示测试用例数接下

2020-09-03 22:50:59 132

原创 被3整除

被3整除题目描述小Q得到一个神奇的数列: 1, 12, 123,…12345678910,1234567891011…。并且小Q对于能否被3整除这个性质很感兴趣。小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。输入描述:输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区间两端。输出描述:输出一个整数, 表示区间内能被3整除的数字个数。解题思路代码import java.util.*;public

2020-09-03 20:59:52 292

原创 牛牛找工作

牛牛找工作题目描述为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<=100000)和小伙伴的数量M(M<=100000)。接下来的N行每行包含两个正整数,分别表

2020-09-03 20:12:32 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除