我和我
我和我
全部文章
面试必刷TOP101
题解(130)
归档
标签
去牛客网
登录
/
注册
我和我的博客
全部文章
/ 面试必刷TOP101
(共101篇)
题解 | #矩阵最长递增路径#TOP61
import java.util.*; public class Solution { //记录四个方向 private int[][] dirs = new int[][] {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; private int ...
2022-07-21
0
294
题解 | #括号生成#TOP60
import java.util.*; public class Solution { /** * * @param n int整型 * @return string字符串ArrayList */ public ArrayList<...
2022-07-20
0
376
题解 | #N皇后问题#TOP59
如果皇后出现在第一列,那么第一行的皇后位置就确定了,接下来递归地在剩余的n−1行中找n−1个皇后的位置。 固定一个[i,j],那接下来的第j+1列,尝试选择n种位置,每一行都递归尝试,反之亦然,但是在每次尝试j+1列,不同行的位置时,是不是要将这一列都清空。 import java.util.*; ...
2022-07-20
0
307
题解 | #字符串的排列#TOP58
思路: 两种方法 1.起始位置有n种选择,所以每次更换i位置和起始位置的值,然后再递归 2.起始位置固定,例如第1个数,固定,剩下的有 n - 1 种可能,然后递归,回溯 import java.util.*; public class Solution { public ArrayList...
2022-07-19
0
343
题解 | #岛屿数量#TOP57
import java.util.*; public class Solution { /** * 判断岛屿数量 * @param grid char字符型二维数组 * @return int整型 */ public int solve ...
2022-07-19
0
238
题解 | #有重复项数字的全排列#TOP56
import java.util.*; public class Solution { boolean[] marked; public ArrayList<ArrayList<Integer>> permuteUnique(int[] num) { ...
2022-07-18
0
332
题解 | #没有重复项数字的全排列#TOP55
思路: 1.先固定第一位,然后第二位有n-1种可能,第三位有n-2种可能 2.如何实现?用for循环遍历,i = 0 到 n-1 ,当第一位是i=0时,第二位再用for循环从 1 到n-1选择,当第二位是i=1时,第三位从2到n-1种选择 3.每种排列去重 4.递归边界条件,排列组合大小为数组大小时...
2022-07-18
0
307
题解 | #三数之和#TOP54
思路: 1.先排序,不适用暴力破解法 2.使用滑动窗口(两路指针,中间夹),我们先固定窗口位置 i..j..k,i范围可以从0到n-3,j的范围是i+1到k-1,k的范围是j+1到n-1 3.示例,第一轮遍历,固定i为0,j从i+1= 1开始,k从n-1开始,如果三个数相加大于0,那说明后面两数相加...
2022-07-17
0
276
题解 | #缺失的第一个正整数#TOP53
思路: 1.哈希算法,将数组值放入map中,如果从1到 nums.length 正整数正向循环遍历中,map不包含当前的正正数,那就是结果了。反之map都包含,那就是nums.length+1这个数组外的正整数不包含了 import java.util.*; public class Solut...
2022-07-17
0
239
题解 | #数组中只出现一次的两个数字#TOP52
思路: 1.哈希 2.位运算,相同的数异或结果为0,如果只有一个数出现奇数次,其他都偶数次,那么数组每个数异或结果就是那个数。只不过题目这里是两个数的异或结果。因为不同的数,异或结果为1,所以找出异或后数字中第一位异或结果为1的位数。以此就可以区分数组为两半。将两半不断异或就得到结果了 import...
2022-07-16
0
289
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页