林郎俊赏
林郎俊赏
全部文章
分类
题解(9)
归档
标签
去牛客网
登录
/
注册
林郎俊赏的博客
全部文章
(共9篇)
题解 | #加起来和为目标值的组合#
看了一下别人写的,太复杂了。。这道题难点在于去重,我也没有什么好办法,所以使用HashSet,记录每个list.tostring的值,进行去重以下代码好于89%以上的答案 ArrayList<ArrayList<Integer>> result = new ArrayList...
2021-07-26
0
317
题解 | #字符串的排列#
看了下别人的答案,复杂的要死,分享一下我自己写的代码很简单,核心思路:1、使用TreeSet进行排序2、对字符串裁切 public ArrayList<String> Permutation(String str) { TreeSet<String> treeSet ...
2021-07-26
0
267
题解 | #矩阵的最小路径和#
动态规划的经典问题,目的地的最优解,等于左边的最优解和上边的最优解的最小值。需要开辟一个二维数组,记录每个节点的最优解。 public int minPathSum(int[][] matrix) { int[][] arr = new int[matrix.length][matrix[0...
2021-07-24
0
296
题解 | #岛屿数量#
遍历矩阵,找到岛屿后,递归抹掉岛屿,总数+1,全部遍历完成后,返回总数 public int solve(char[][] grid) { int sum = 0; for (int i = 0; i < grid.length; i++) { for (int...
2021-07-24
0
349
题解 | #字符串出现次数的TopK问题#
字符串是一个唯一的值,可以用map进行存储。同时,需要对出现的次数进行,排序,map不支持排序。可以使用SortedSet的实现进行求解。map+treeset可以解决。最后注意一下k的取值可能大雨map.size就行了。 public class NC97 { /** * ret...
2021-07-21
0
398
题解 | #缺失数字#
偶数相加等于偶数,奇数相加等于偶数,若出现等于奇数,则说明两个数中间的数缺失了 public int solve(int[] a) { if(a[0]!=0) return 0; for (int i = 0, j = 1; i < a.length && j&...
2021-07-20
0
248
题解 | #两个链表的第一个公共结点#
题目没有要求时间复杂度,所以,如果存在共同的节点,那么该节点的哈希值相等,记录该哈希值,遍历另一个链表,判断哈希值是否存在,第一个存在的节点就是公共节点 public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { ...
2021-07-17
0
322
题解 | #最长公共子串#
我的代码比较简单,希望能帮到大家以两个字符串的长度,构造一个二维数组,然后遍历两个字符串进行匹配,如果相等,则将二维数组中的数据置1.最终获取二维数组斜长最大的那份数据,就是最长的公共子串。 public String LCS(String str1, String str2) { int...
2021-07-16
0
338
题解 | #合并两个有序的数组#
从尾巴开始遍历,比较两个数组尾巴的最大值,然后把该最大值放进去,同时维护指针 public void merge(int A[], int m, int B[], int n) { m--; n--; for (int i = 0; i < A.length; i++)...
2021-07-15
0
273