自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 NC25 删除有序链表中重复的元素-I

NC25 删除有序链表中重复的元素-I描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1\to1\to21→1→2,返回1 \to 21→2.给出的链表为1\to1\to 2 \to 3 \to 31→1→2→3→3,返回1\to 2 \to 31→2→3.import java.util.*;/* * public class ListNode { * int val; * ListNode next = null;

2021-09-12 21:59:36 205 1

原创 NC24 删除有序链表中重复的元素-II

NC24 删除有序链表中重复的元素-II描述给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出的链表为1 \to 2\to 3\to 3\to 4\to 4\to51→2→3→3→4→4→5, 返回1\to 2\to51→2→5.给出的链表为1\to1 \to 1\to 2 \to 31→1→1→2→3, 返回2\to 32→3.import java.util.*;/* * public class ListNode { * int

2021-09-12 21:50:04 280

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

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

2021-09-12 16:56:48 214

原创 NC60 判断一棵二叉树是否为搜索二叉树和完全二叉树

NC60 判断一棵二叉树是否为搜索二叉树和完全二叉树描述给定一棵二叉树,已知其中的节点没有重复值,请判断该二叉树是否为搜索二叉树和完全二叉树。示例1输入:{2,1,3}复制返回值:[true,true]import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */public class

2021-09-12 16:17:39 158

原创 NC36 在两个长度相等的排序数组中找到上中位数

NC36 在两个长度相等的排序数组中找到上中位数描述给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。上中位数:假设递增序列长度为n,若n为奇数,则上中位数为第n/2+1个数;否则为第n/2个数[要求]时间复杂度为O(logN)O(logN),额外空间复杂度为O(1)O(1)示例1输入:[1,2,3,4],[3,4,5,6]复制返回值:3复制说明:总共有8个数,上中位数是第4小的数,所以返回3。import java.util.*;

2021-09-12 14:40:16 170

原创 NC34 求路径

NC34 求路径排行描述一个机器人在m×n大小的地图的左上角(起点)。机器人每次向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?import java.util.*;public class Solution { /** * * @param m int整型 * @param n int整型 * @return int整型 */ public int uniquePaths (i

2021-09-11 21:50:31 269

原创 NC92 最长公共子序列-II

NC92 最长公共子序列-II描述给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则返回"-1"。目前给出的数据,仅仅会存在一个最长的公共子序列示例1输入:“1A2C3D4B56”,“B1D23A456A”复制返回值:“123456”复制示例2输入:“abc”,“def”复制返回值:“-1”复制示例3输入:“abc”,“abc”复制返回值:“abc”复制import java.util.*;public clas

2021-09-03 23:12:22 528

原创 NC21 链表内指定区间反转

NC21 链表内指定区间反转描述将一个链表\ m m 位置到\ n n 位置之间的区间反转,要求时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)。例如:给出的链表为 1\to 2 \to 3 \to 4 \to 5 \to NULL1→2→3→4→5→NULL, m=2,n=4m=2,n=4,返回 1\to 4\to 3\to 2\to 5\to NULL1→4→3→2→5→NULL.注意:给出的 mm,nn 满足以下条件:1 \leq m \leq n \leq 链表长度1≤m≤

2021-09-03 22:42:19 230

原创 NC8 二叉树根节点到叶子节点和为指定值的路径

NC8 二叉树根节点到叶子节点和为指定值的路径描述给定一个二叉树和一个值\ sum sum,请找出所有的根节点到叶子节点的节点值之和等于\ sum sum 的路径,例如:给出如下的二叉树,\ sum=22 sum=22,返回[[5,4,11,2],[5,8,9]]import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode rig

2021-09-03 14:27:36 83

原创 NC35 最小编辑代价

NC35 最小编辑代价描述给定两个字符串str1和str2,再给定三个整数ic,dc和rc,分别代表插入、删除和替换一个字符的代价,请输出将str1编辑成str2的最小代价。示例1输入:“abc”,“adc”,5,3,2复制返回值:2复制示例2输入:“abc”,“adc”,5,3,100复制返回值:8import java.util.*;public class Solution { /** * min edit cost * @param

2021-09-03 12:33:54 128

原创 NC96 判断一个链表是否为回文结构

NC96 判断一个链表是否为回文结构描述给定一个链表,请判断该链表是否为回文结构。示例1输入:[1]复制返回值:true复制示例2输入:[2,1]复制返回值:false复制说明:2->1示例3输入:[1,2,2,1]复制返回值:true复制说明:1->2->2->1import java.util.*;/* * public class ListNode { * int val; * ListNode next

2021-09-03 11:53:44 97

原创 NC112 进制转换

NC112 进制转换描述给定一个十进制数 M ,以及需要转换的进制数 N 。将十进制数 M 转化为 N 进制数。当 N 大于 10 以后, 应在结果中使用大写字母表示大于 10 的一位,如 ‘A’ 表示此位为 10 , ‘B’ 表示此位为 11 。若 M 为负数,应在结果中保留负号。示例1输入:7,2复制返回值:“111”import java.util.*;public class Solution { /** * 进制转换 * @param M i

2021-09-02 23:35:09 100

原创 NC97 字符串出现次数的TopK问题

NC97 字符串出现次数的TopK问题描述给定一个字符串数组,再给定整数k,请返回出现次数前k名的字符串和对应的次数。返回的答案应该按字符串出现频率由高到低排序。如果不同的字符串有相同出现频率,按字典序排序。对于两个字符串,大小关系取决于两个字符串从左到右第一个不同字符的 ASCII 值的大小关系。比如"ah1x"小于"ahb",“231”<”32“字符仅包含数字和字母[要求]如果字符串数组长度为N,时间复杂度请达到O(N \log K)O(NlogK)import java.uti

2021-09-02 22:27:08 114

原创 NC137 表达式求值

NC137 表达式求值描述请写一个整数计算器,支持加减乘三种运算和括号。示例1输入:“1+2”复制返回值:3复制示例2输入:“(2*(3-4))5"复制返回值:-10复制示例3输入:"3+23*4-1”复制返回值:26在这里插入代码片...

2021-09-01 17:33:17 144

原创 NC59 矩阵的最小路径和

NC59 矩阵的最小路径和描述给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。示例1输入:[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]复制返回值:12import java.util.*;public class Solution { /** * * @param matrix int整型二维数组 the m

2021-09-01 16:19:23 177

原创 NC73 数组中出现次数超过一半的数字

NC73 数组中出现次数超过一半的数字描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000,0<=数组元素<=10000示例1输入:[1,2,3,2,2,2,5,4,2]复制返回值:2复制示例2输入:[3,3,3,3,2,2,2]复制

2021-09-01 14:02:56 175

原创 NC62 平衡二叉树

NC62 平衡二叉树描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。注:我们约定空树是平衡二叉树。示例1输入:{1,2,3,4,5,6,7}复制返回值:truepublic class Solution { public int no_balance =

2021-09-01 13:43:14 200

原创 NC70 单链表的排序

NC70 单链表的排序描述给定一个无序单链表,实现单链表的排序(按升序排序)。示例1输入:[1,3,2,4,5]复制返回值:{1,2,3,4,5}import java.util.*;/* * public class ListNode { * int val; * ListNode next = null; * } */public class Solution { /** * * @param head ListNode类 the

2021-09-01 12:36:48 89

原创 NC141 判断回文

NC141 判断回文描述给定一个字符串,请编写一个函数判断该字符串是否回文。如果回文请返回true,否则返回false。示例1输入:“absba”复制返回值:true复制示例2输入:“ranko”复制返回值:falseimport java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param str string字

2021-09-01 11:45:29 60

原创 NC13 二叉树的最大深度

NC13 二叉树的最大深度示例1输入:{1,2}复制返回值:2复制示例2输入:{1,2,3,4,#,#,5}复制返回值:3import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */public class Solution { /** * *

2021-09-01 11:40:22 99

原创 NC109 岛屿数量

NC109 岛屿数量描述给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。示例1输入:[[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,1,1,1]]复制返回值:3import java.util.*;public class Solution { /** * 判断岛屿数量

2021-09-01 11:25:22 206

原创 NC136 输出二叉树的右视图

NC136 输出二叉树的右视图描述请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图示例1输入:[1,2,4,5,3],[4,2,5,1,3]复制返回值:[1,3,5]import java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 求二叉树的右视图 * @param xianxu int整型一维数组 先序遍历

2021-08-29 22:11:45 103

原创 NC128 接雨水问题

NC128 接雨水问题描述给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个柱子高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例1输入:[3,1,2,5,2,4]复制返回值:5复制说明:数组 [3,1,2,5,2,4] 表示柱子高度图,在这种情况下,可以接 5个单位的雨水,蓝色的为雨水示例2输入:[4,5,1,3,2]复制返回值:2import java.util.*;public class Solution { /**

2021-08-29 21:47:25 85

原创 NC121 字符串的排列

NC121 字符串的排列描述输入一个字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。示例1输入:“ab”复制返回值:[“ab”,“ba”]复制说明:返回[“ba”,“ab”]也是正确的示例2输入:“aab”复制返回值:[“aab”,“aba

2021-08-29 21:02:01 89

原创 NC51 合并k个已排序的链表

NC51 合并k个已排序的链表描述合并\ k k 个已排序的链表并将其作为一个已排序的链表返回。分析并描述其复杂度。示例1输入:[{1,2,3},{4,5,6,7}]复制返回值:{1,2,3,4,5,6,7}import java.util.* ;/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode

2021-08-27 22:31:45 125

原创 NC7 买卖股票的最好时机

NC7 买卖股票的最好时机描述假设你有一个数组,其中第\ i i 个元素是股票在第\ i i 天的价格。你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。示例1输入:[1,4,2]复制返回值:3复制示例2输入:[2,4,1]复制返回值:2import java.util.*;public class Solution { /** * * @param prices int整型一维数组

2021-08-27 22:08:09 55

原创 NC90 包含min函数的栈

NC90 包含min函数的栈描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数,并且调用 min函数、push函数 及 pop函数 的时间复杂度都是 O(1)push(value):将value压入栈中pop():弹出栈顶元素top():获取栈顶元素min():获取栈中最小元素示例:输入: [“PSH-1”,“PSH2”,“MIN”,“TOP”,“POP”,“PSH1”,“TOP”,“MIN”]输出: -1,2,1,-1解析:"PSH-1"表示将

2021-08-27 21:40:54 57

原创 NC32 求平方根

NC32 求平方根描述实现函数 int sqrt(int x).计算并返回x的平方根(向下取整)示例1输入:2复制返回值:1`import java.util.*;public class Solution { /** * * @param x int整型 * @return int整型 */ public int sqrt (int x) { // write code here if(x

2021-08-27 20:34:14 114

原创 NC48 在旋转过的有序数组中寻找目标值

NC48 在旋转过的有序数组中寻找目标值描述给定一个整数数组nums,按升序排序,数组中的元素各不相同。nums数组在传递给search函数之前,会在预先未知的某个下标 t(0 <= t <= nums.length-1)上进行旋转,让数组变为[nums[t], nums[t+1], …, nums[nums.length-1], nums[0], nums[1], …, nums[t-1]]。比如,数组[0,2,4,6,8,10]在下标3处旋转之后变为[6,8,10,0,2,4]现在

2021-08-27 17:54:28 150

原创 NC91 最长递增子序列

NC91 最长递增子序列描述给定数组arr,设长度为n,输出arr的最长递增子序列。(如果有多个答案,请输出其中 按数值(注:区别于按单个字符的ASCII码值)进行比较的 字典序最小的那个)示例1输入:[2,1,5,3,6,4,8,9,7]复制返回值:[1,3,4,8,9]复制示例2输入:[1,2,8,6,4]复制返回值:[1,2,4]复制说明:其最长递增子序列有3个,(1,2,8)、(1,2,6)、(1,2,4)其中第三个 按数值进行比较的字典序 最小,故答案为(1,2

2021-08-27 17:03:55 337

原创 NC54 数组中相加和为0的三元组

NC54 数组中相加和为0的三元组描述给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。注意:三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c)解集中不能包含重复的三元组。例如,给定的数组 S = {-10 0 10 20 -10 -40},解集为(-10, -10, 20),(-10, 0, 10)0 <= S.length <= 1000示例1输入:[0]复制返回值:[]复制示例2输入:[-

2021-08-27 12:25:02 181

原创 NC12 重建二叉树

NC12 重建二叉树排行描述给定某二叉树的前序遍历和中序遍历,请重建出该二叉树并返回它的头结点。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。提示:1.0 <= pre.length <= 20002.vin.length == pre.length3.-10000 <= pre[i], vin[i] <= 100004.pre 和 vin 均无重复元素5.vin出现的元素均出现在 pr

2021-08-27 10:31:10 92

原创 NC17 最长回文子串

NC17 最长回文子串描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。示例1输入:“abc1234321ab”,12复制返回值:7import java.util.*;public class Solution { public int getLongestPalindrome(String A, int n) { // write code here if(n <

2021-08-26 12:53:33 126 1

原创 NC65 斐波那契数列

NC65 斐波那契数列描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n\leq 39n≤39示例1输入:4复制返回值:3public class Solution { public int Fibonacci(int n) { if(n == 0){ return 0 ; } if(n == 1){ retu

2021-08-26 12:05:00 121

原创 NC38 螺旋矩阵

NC38 螺旋矩阵描述给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。示例1输入:[[1,2,3],[4,5,6],[7,8,9]]复制返回值:[1,2,3,6,9,8,7,4,5]import java.util.* ;public class Solution { public ArrayList<Integer> spiralOrder(int[][] matrix) { ArrayList<Integer&g

2021-08-26 11:55:15 142

原创 NC103 反转字符串

NC103 反转字符串描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)示例1输入:“abcd”复制返回值:“dcba”import java.util.*;public class Solution { /** * 反转字符串 * @param str string字符串 * @return string字符串 */ public String solve (String str)

2021-08-25 22:04:45 79

原创 NC33 合并两个排序的链表

NC33 合并两个排序的链表描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。示例1输入:{1,3,5},{2,4,6}复制返回值:{1,2,3,4,5,6}/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solutio

2021-08-25 22:00:08 85

原创 NC102 在二叉树中找到两个节点的最近公共祖先

NC102 在二叉树中找到两个节点的最近公共祖先描述给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。注:本题保证二叉树中每个节点的val值均不相同。示例1输入:[3,5,1,6,2,0,8,#,#,7,4],5,1复制返回值:3import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null;

2021-08-09 12:19:42 117

原创 NC40 两个链表生成相加链表

NC40 两个链表生成相加链表描述假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。示例1输入:[9,3,7],[6,3]复制返回值:{1,0,0,0}import java.util.*;/* * public class ListNode { *

2021-08-09 12:06:56 211

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

NC66 两个链表的第一个公共结点描述输入两个无环的单链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)示例1输入:{1,2,3},{4,5},{6,7}复制返回值:{6,7}复制说明:第一个参数{1,2,3}代表是第一个链表非公共部分,第二个参数{4,5}代表是第二个链表非公共部分,最后的{6,7}表示的是2个链表的公共部分这3个参数最后在后台会组装成为2个两个无环的单链表,且是有公共节点的示例2输入:{

2021-08-09 11:06:13 75

空空如也

空空如也

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

TA关注的人

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