ajaj
ajaj
全部文章
题解
java(4)
leetcode(1)
linux(1)
剑指(5)
数据库(1)
归档
标签
去牛客网
登录
/
注册
IT武林
爱生活,爱java
全部文章
/ 题解
(共11篇)
题解 | #判断一棵二叉树是否为搜索二叉树和完全二叉树#
思路: 从题中给出的有效信息: 二叉树是否为搜索二叉树和完全二叉树 故此 二叉树 搜索树采用递归的方式解决,完全二叉树使用bfs对其进行求解 方法一:递归+广度优先遍历 具体做法:搜索树:使用递归的方式进行求解,判断该二叉树的左子树不为空,则左子树上所有节点的值均小于的根节点的值; 若它的右子树...
java
刷题
C60
2021-07-18
7
2663
题解 | #两数之和#(附带图解)
思路: 从题中给出的有效信息: 找出下标对应的值相加为target 数组中存在唯一解 故此 可以使用 直接遍历 或者 hash表 来解答 方法一:直接遍历 具体做法:循环遍历数组的每一个数,如果遍历的两数之和等于target,则返回两个数的下标; import java.util.*; publ...
java
刷题
NC61
2021-07-18
66
9554
题解 | #平衡二叉树#(附带图解)
思路: 从题中给出的有效信息: 左右两个子树的高度差的绝对值不超过1 左右两个子树都是一棵平衡二叉树 故此 首先想到的方法是使用递归的方式判断子节点的状态 方法一:dfs 具体做法:如果一个节点的左右子节点都是平衡的,并且左右子节点的深度差不超过 1,则可以确定这个节点就是一颗平衡二叉树。具体过...
java
刷题
NC62
2021-07-18
12
1712
题解 | #扑克牌顺子#(附带图解)
思路: 从题中给出的有效信息: 2副牌 5张牌除大小王都是唯一的 故此我们可以采用遍历就可以解决这个问题,需要用到集合等数据结构 方法一: 具体做法:将 nums 数组依次装入 set集合,遇到 0 则返回装下一个元素,出现重复元素则返回 false,并在其中记录max,min,最终max-mi...
java
刷题
N63
2021-07-18
3
1112
题解 | #两个链表生成相加链表#(附带图解)
思路: 从题中给出的有效信息: 一个链表代表一个整数,返回多个链表的相加结果 故此顺位迭代就可以了,链表的问题大多借助栈和队列的结构思想 方法一: 具体做法:申请两个栈空间和一个标记位,然后将两个栈中内容依次相加,将结果倒插入新节点中。 具体过程如下图所示: import java.util....
NC40
java
刷题
链表
2021-07-14
18
3194
题解 | #N皇后问题#(附带图解)
思路: 从题中给出的有效信息: 任何两个皇后不同行,不同列也不再同一条斜线上,计算n皇后的排列种类 由于此题需要对nxn棋盘中的每个点进行判断,在符合情况的点再进行选择,穷举棋盘是不可避免,故此我们可以使用回溯的方法进行解决此问题 方法一:常用-集合 具体做法:1.设置三个集合分别记录不能再被选...
刷题
java
n皇后
NC39
2021-07-14
25
4985
题解 | #合并有序链表#(附带图解)
思路: 从题中给出的有效信息: 两个有序的链表 合并后新链表有序 故此两个有序的链表,合并两个链表可以使用 递归 和 双指针 的方式来解答 方法一:递归 具体做法:如果l1节点值比l2小,将 l1的下一个节点 指向 l1.next 和 l2 合并后的头结点;l1节点值比l2小同理 import ...
java
刷题
双指针
NC33
2021-07-13
0
679
题解 | #求平方根#
思路: 从题中给出的有效信息: 取x的平方根向下取整 最好不要使用库函数,这是面试官不想看到的,仔细分析此题,不难发现此题有两个信息点:1.x>4时,x的平方根一定不会超过它的一半,2.自然数的平方是递增的,它是一个有序的排序;基于两点信息可以使用 二分法 来进行求解此题 方法一:二分法 ...
java
刷题
二分
NC32
2021-07-13
5
967
题解 | #第一个只出现一次的字符#(附带图解)
思路: 从题中给出的有效信息有两点: 找到第一个只出现一次的字符 区分大小写,从0开始计数 由于哈希函数对于hash值的算法的速度比较快,故此此字符串可以通过哈希数组来进行解答 方法一:哈希数组 具体做法:先将数据存入哈希数组中,判断存在就存 -1, 不存在就存当前下标,再通过哈希数组遍历找到最...
java
刷题
哈希
NC31
2021-07-13
0
641
题解 | #数组中未出现的最小正整数#(附带图解)
思路: 从题中给出的有效信息: 无序数组 找出未出现的最小正整数 时间复杂度为O(n),空间复杂度为O(1) 故此 不能申请额外空间,且由于时间为O(n),而不能直接使用排序算法(最低也是nlog(n)复杂度)加二分解决,只能进行原地算法 方法一:原地算法 具体做法:遍历数组,将 大于0小于ar...
java
刷题
NC30
原地算法
2021-07-10
1
1446
首页
上一页
1
2
下一页
末页