空中转体一周半
空中转体一周半
全部文章
分类
未归档(1)
题解(80)
归档
标签
去牛客网
登录
/
注册
空中转体一周半的博客
全部文章
(共93篇)
题解 | #输出单向链表中倒数第k个结点#
提供一个空间复杂度为O(1)的解法:插入排序。初始条件下,把链表的头节点摘下放在另外一个链表中,然后每次取未排序链表的头部,进行链表合并即可。时间复杂度和数组中的插入排序一致。 public class Solution { public ListNode sortInList (ListN...
Java
2022-02-15
3
424
题解 | #打印从1到最大的n位数#
那就暴力呗。根据n算出数组大小,然后赋值... public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 最大位数 *...
Java
2022-01-20
3
1022
把数组排成最小的数
方法一:使用贪心算法,每次选择一个最大优先级的数字放在最后(类似于冒泡排序),对于优先级的比较,使用cmp函数即可,正向拼接n1与n2,反向拼接n2与n1,正向字符串大,则说明n1优先级最大,放在最后。 public class Solution { public String PrintM...
Java
2022-01-20
2
434
题解 | #最长不含重复字符的子字符串#
使用哈希暴力求解:遍历字符串,把每个字符串放入哈希表中,如果哈希表中已经存在该字符,更新最大长度,并把下标回调。 public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * ...
Java
2022-01-20
0
436
题解 | #机器人的运动范围#
机器人的运动范围:基本思路是广度优先遍历。在遍历一个点之前,先对其进行边界检查和门限检查。设置一个二维数组,用于表示该点是否已经被走过,如果被走过,则不参与计数。判断门限时,这里使用了字符串的形式,也可以采用其它形式。时间复杂度:O(mn)空间复杂度O(mn) public class Soluti...
Java
2022-01-20
0
342
题解 | #缺失的第一个正整数#
时间复杂度O(n),空间复杂度O(n)的做法:开辟一个新的数组arr,长度为nums.length+1,遍历nums数组,如果非负且值小于nums的长度,则把arr[nums[i]]置1。然后遍历辅助数组,找到下标不为1的第一个元素即可。 public class Solution { pu...
Java
2022-01-03
5
857
题解 | #矩阵元素查找#
遍历数组,由于矩阵从上到下,从右到左有序,因此可以从第0行第m-1列开始遍历,若mat[i][j]>x则左移,否则下移,直到找到目标元素。越界则直接返回空数组。时间复杂度O(m+n)。 public class Solution { public int[] findElement(i...
Java
2022-01-01
1
293
题解 | #岛屿数量#
#岛屿数量#解题思路:按行遍历矩阵,遇到‘1’则使用广度优先移除已经参与计数的岛屿。使用递归删除左右上下相邻的grid[i][j]=='1'的格子即可。此方法时间复杂度o(n^2)。 public class Solution { public int solve (char[][] gri...
Java
2021-12-28
0
370
题解 | #输出二叉树的右视图#
#输出二叉树的右视图# 分成两步走:1、递归重建二叉树(参考NC12重建二叉树)时间复杂度O(n),空间O(n)2、层序遍历(使用一个last指针记录每一层的最后一个节点,遍历到每层最后一个节点时,将其加入数组即可)时间复杂度O(n),空间O(n),总时间复杂度O(n),总空间复杂度O(n) p...
Java
2021-12-28
0
332
题解 | #两个链表生成相加链表#
主要是相加的过程。相加后的结果由当前两位和低位的进位组成。进位初始化为0.为了避免链表中操作的复杂性(翻转、对齐等操作还需要增加额外的代码),可以直接用StringBuilder构造两个序列。依次完成翻转、对齐、相加操作,最后把字符串中的序列还原到链表中即可。 public class Soluti...
Java
2021-12-26
0
339
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页